Namespaces
Variants
Actions

operator==(std::move_only_function)

From cppreference.com
 
 
 
Function objects
Function invocation
(C++17)(C++23)
Identity function object
(C++20)
Old binders and adaptors
(until C++17*)
(until C++17*)
(until C++17*)
(until C++17*)  
(until C++17*)
(until C++17*)(until C++17*)(until C++17*)(until C++17*)
(until C++20*)
(until C++20*)
(until C++17*)(until C++17*)
(until C++17*)(until C++17*)

(until C++17*)
(until C++17*)(until C++17*)(until C++17*)(until C++17*)
(until C++20*)
(until C++20*)
 
 
friendbool operator==(conststd::move_only_function& f, std::nullptr_t)noexcept;
(since C++23)

Checks whether the wrapper f has a callable target by formally comparing it with std::nullptr_t. Empty wrappers (that is, wrappers without a target) compare equal, non-empty functions compare non-equal.

This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::move_only_function<FunctionType> is an associated class of the arguments.

The != operator is synthesized from operator==.

Contents

[edit]Parameters

f - std::move_only_function to compare

[edit]Return value

!f.

[edit]Example

#include <functional>#include <iostream>#include <utility>   using SomeVoidFunc =std::move_only_function<void(int)const>;   class C {public: C()=default; C(SomeVoidFunc func): void_func_(std::move(func)){}   void default_func(int i)const{std::cout<< i <<'\n';};   void operator()()const{if(void_func_ == nullptr)// specialized compare with nullptr default_func(7);else void_func_(7);}   private: SomeVoidFunc void_func_{};};   void user_func(int i){std::cout<<(i +1)<<'\n';}   int main(){ C c1; C c2(user_func); c1(); c2();}

Output:

7 8

[edit]See also

checks if the std::move_only_function has a target
(public member function)[edit]
(removed in C++20)
compares a std::function with nullptr
(function template)[edit]
close