Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

function::relational operators (function)

函数模板  <functional>

(1)
template <class Ret, class... Args>
  bool operator== (const function<Ret(Args...)>& lhs, nullptr_t rhs) noexcept;
template <class Ret, class... Args>
  bool operator== (nullptr_t lhs, const function<Ret(Args...)>& rhs) noexcept;
(2)
template <class Ret, class... Args>
  bool operator!= (const function<Ret(Args...)>& lhs, nullptr_t rhs) noexcept;
template <class Ret, class... Args>
  bool operator!= (nullptr_t lhs, const function<Ret(Args...)>& rhs) noexcept;

函数与空指针的关系操作符
执行针对对空指针的比较:

equality comparison (1)
如果函数对象是空函数(即,它没有target),则返回true。

inequality comparison (2)
如果function对象不是空函数(也就是说,它有一个target),则返回true。


注意,不能使用这个操作符直接比较两个function对象。

☲  参数


lhs, rhs
function对象和空指针,顺序都可以。

☉  返回值



如果条件成立,则为True,否则为false。

☣  示例



// function comparisons vs nullptr
#include <iostream>     // std::cout
#include <functional>   // std::function, std::plus

int main () {
  std::function<int(int,int)> foo = std::plus<int>();
  std::function<int(int,int)> bar;

  std::cout << "foo is " << (foo==nullptr ? "not callable" : "callable") << ".\n";
  std::cout << "bar is " << (bar==nullptr ? "not callable" : "callable") << ".\n";

  return 0;
}

输出:
foo is callable
bar is not callable

⇄ 数据竞争



访问所涉及的function对象。

☂ 异常安全性



无抛出保证:从不抛出异常。

🍄  另请参阅



function::operator bool 检查是否可调用(公共成员函数)
function::target_type 目标内部类型(公共成员函数)

联系我们 免责声明 关于CandCplus 网站地图