|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
(until C++17) | ||||
| Non-member functions | ||||
operator==operator!= (until C++20) | ||||
| Helper classes | ||||
(until C++17) | ||||
| Deduction guides(C++17) |
Defined in header <functional> | ||
template<class R,class...ArgTypes> bool operator==(conststd::function<R(ArgTypes...)>& f, | (1) | (since C++11) |
template<class R,class...ArgTypes> bool operator==(std::nullptr_t, | (2) | (since C++11) (until C++20) |
template<class R,class...ArgTypes> bool operator!=(conststd::function<R(ArgTypes...)>& f, | (3) | (since C++11) (until C++20) |
template<class R,class...ArgTypes> bool operator!=(std::nullptr_t, | (4) | (since C++11) (until C++20) |
Compares astd::function with a null pointer. Empty functions (that is, functions without a callable target) compare equal, non-empty functions compare non-equal.
The | (since C++20) |
Contents |
| f | - | std::function to compare |
#include <functional>#include <iostream> using SomeVoidFunc=std::function<void(int)>; class C{public: C(SomeVoidFunc void_func= nullptr): void_func_(void_func){if(void_func_== nullptr)// specialized compare with nullptr void_func_=std::bind(&C::default_func, this, std::placeholders::_1); void_func_(7);} void default_func(int i){std::cout<< i<<'\n';}; private: SomeVoidFunc void_func_;}; void user_func(int i){std::cout<<(i+1)<<'\n';} int main(){ C c1; C c2(user_func);}
Output:
78
(C++23) | compares astd::move_only_function withnullptr(function)[edit] |