Namespaces
Variants

std::move_only_function::operator bool

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
Objetos función
Invocación de funciones
(C++17)(C++23)
Objeto función identidad
(C++20)
Envoltorios de operadores transparentes
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Enlazadores y adaptadores antiguos
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)  
(hasta C++17*)
(hasta C++17*)(hasta C++17*)(hasta C++17*)(hasta C++17*)
(hasta C++20*)
(hasta C++20*)
(hasta C++17*)(hasta C++17*)
(hasta C++17*)(hasta C++17*)

(hasta C++17*)
(hasta C++17*)(hasta C++17*)(hasta C++17*)(hasta C++17*)
(hasta C++20*)
(hasta C++20*)
 
 
explicit operator bool() const noexcept;
(desde C++23)

Comprueba si *this almacena un destino invocable, es decir, no está vacío.

Parámetros

(ninguno)

Valor de retorno

true si * this almacena un objetivo invocable, false en caso contrario.

Ejemplo

#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();
    }
    else
        std::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);
}

Salida:

f1: Function is empty. Nothing to do.
f2: Function is not empty! Calling function.
This is the sample function!

Véase también

(C++23)
compara un std::move_only_function con nullptr
(función)
verifica si contiene un objetivo
(función miembro pública de std::function<R(Args...)> )