std::function<R(Args...)>::operator bool
Материал из cppreference.com
<tbody>
</tbody>
explicit operator bool() const noexcept; |
(начиная с 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)
|