std::function<R(Args...)>::operator bool
explicit operator bool() const noexcept; | (начиная с C++11) |
Проверяет, хранит ли *this вызываемую целевую функцию, то есть не является ли пустым.
Параметры
(нет)
Возвращаемое значение
true, если *this хранит вызываемую целевую функцию, иначе false.
Пример
#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();
}
else
std::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);
}
Вывод:
f1: Function is empty. Nothing to do. f2: Function is not empty! Calling function. This is the sample function!
См. также
проверяет, есть ли у std::move_only_function целевой объект (открытая функция-член std::move_only_function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/functional/function/operator_bool