std::move_only_function::operator bool
From cppreference.com
< cpp | utility | functional | move only function
explicit operator bool()constnoexcept; | (since C++23) | |
Checks whether *this stores a callable target, i.e. is not empty.
Contents |
[edit]Parameters
(none)
[edit]Return value
true if *this stores a callable target, false otherwise.
[edit]Example
Run this code
#include <functional>#include <iostream> void sampleFunction(){std::cout<<"This is the sample function!\n";} void checkFunc(std::move_only_function<void()const>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::move_only_function<void()const> f1{};std::move_only_function<void()const> 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!
[edit]See also
(C++23) | compares a std::move_only_function with nullptr(function) |
checks if a target is contained (public member function of std::function<R(Args...)> ) |