|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
(until C++17) | ||||
function::operator bool | ||||
| Non-member functions | ||||
(until C++20) | ||||
| Helper classes | ||||
(until C++17) | ||||
| Deduction guides(C++17) |
explicit operatorbool()constnoexcept; | (since C++11) | |
Checks whether*this stores a callable function target, i.e. is not empty.
Contents |
(none)
true if*this stores a callable function target,false otherwise.
#include <functional>#include <iostream> void sampleFunction(){std::cout<<"This is the sample function!\n";} void checkFunc(std::function<void()>const& func){// Use operator bool to determine if callable target is available.if(func){std::cout<<"Function is not empty! Calling function.\n"; func();}elsestd::cout<<"Function is empty. Nothing to do.\n";} int main(){std::function<void()> f1;std::function<void()> f2(sampleFunction); std::cout<<"f1: "; checkFunc(f1); std::cout<<"f2: "; checkFunc(f2);}
Output:
f1: Function is empty. Nothing to do.f2: Function is not empty! Calling function.This is the sample function!
checks if thestd::move_only_function has a target(public member function of std::move_only_function)[edit] |