std::function<R(Args...)>::operator bool
Материал из cppreference.com
< cpp | utility | functional | function
explicit operator bool()constnoexcept; | (начиная с C++11) | |
Проверяет, хранит ли цель объекта *this вызываемую функцию, т.е. не является ли он пустым.
Содержание |
[править]Параметры
(нет)
[править]Возвращаемое значение
true, если *this хранит вызываемую функцию как цель, false иначе.
[править]Пример
Запустить этот код
#include <functional>#include <iostream> void sampleFunction(){std::cout<<"Это пример функции!\n";} void checkFunc(std::function<void()>const&func ){// Используется оператор bool, чтобы определить, доступна ли вызываемая цель.if( func ){std::cout<<"Функция не пуста! Вызываемая функция.\n"; func();}else{std::cout<<"Функция пуста. Ничего не делать.\n";}} int main(){std::function<void()> f1;std::function<void()> f2( sampleFunction ); std::cout<<"f1: "; checkFunc( f1 ); std::cout<<"f2: "; checkFunc( f2 );}
Вывод:
f1: Функция пуста. Ничего не делать. f2: Функция не пуста! Вызываемая функция. Это пример функции!
[править]Смотрите также
(C++23) | проверяет, есть ли у std::move_only_function цель (public функция-элемент std::move_only_function ) |