Difference between revisions of "cpp/utility/functional/function/operator cmp"
From cppreference.com
< cpp | utility | functional | function
m (r2.7.3) (Robot: Adding de, es, fr, it, ja, pt, ru, zh) |
(Added example code) |
||
Line 35: | Line 35: | ||
{{example | {{example | ||
| code= | | code= | ||
+ | #include <functional> | ||
+ | #include <iostream> | ||
+ | |||
+ | typedef std::function<void(int)> SomeVoidFunc; | ||
+ | |||
+ | 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= | | output= | ||
+ | 7 | ||
+ | 8 | ||
}} | }} | ||
Revision as of 13:17, 28 November 2012
Template:ddcl list begin <tr class="t-dcl ">
<td >template< class R, class... ArgTypes >
bool operator==( const function<R(ArgTypes...)>& f, std::nullptr_t );
</td>
bool operator==( const function<R(ArgTypes...)>& f, std::nullptr_t );
<td > (1) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >template< class R, class... ArgTypes >
bool operator==( std::nullptr_t, const function<R(ArgTypes...)>& f );
</td>
bool operator==( std::nullptr_t, const function<R(ArgTypes...)>& f );
<td > (2) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >template< class R, class... ArgTypes >
bool operator!=( const function<R(ArgTypes...)>& f, std::nullptr_t );
</td>
bool operator!=( const function<R(ArgTypes...)>& f, std::nullptr_t );
<td > (3) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >template< class R, class... ArgTypes >
bool operator!=( std::nullptr_t, const function<R(ArgTypes...)>& f );
</td>
bool operator!=( std::nullptr_t, const function<R(ArgTypes...)>& f );
<td > (4) </td> <td class="t-dcl-nopad"> </td> </tr> Template:ddcl list end
Compares a std::function
with a null pointer.
Parameters
f | - | std::function to compare
|
Return value
1-2) !f
3-4) (bool) f
Example
Run this code
#include <functional> #include <iostream> typedef std::function<void(int)> SomeVoidFunc; 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:
7 8