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