Espacios de nombres
Variantes
Acciones

std::function::operator bool

De cppreference.com
< cpp‎ | utility‎ | functional‎ | function
 
 
Biblioteca de servicios
 
Objetos función
Envoltorios de funciones
(C++11)
(C++11)
Aplicación parcial de funciones
(C++20)
(C++11)
Invocación de funciones
(C++17)(C++23)
Objeto función identidad
(C++20)
Envoltorios de referencias
(C++11)(C++11)
Envoltorios de operador 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)
Negadores
(C++17)
Buscadores
Comparadores restringidos
Vinculadores 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++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++11)

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

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

true if *this almacena un destino de función invocable, false de lo contrario.

[editar] Ejemplo

#include <functional>
#include <iostream>
 
void funcMuestra()
{
    std::cout << "¡Esta es la función muestra!\n";
}
 
void comprobarFunc( std::function<void()> const &func )
{
    // Usa operator bool para determinar si el destino invocable está disponible.
    if( func )  
    {
        std::cout << "¡La función no está vacía! Llamando a la función.\n";
        func();
    }
    else
    {
        std::cout << "La función está vacía. Nada que hacer.\n";
    }
}
 
int main()
{
    std::function<void()> f1;
    std::function<void()> f2( funcMuestra );
 
    std::cout << "f1: ";
    comprobarFunc( f1 );
 
    std::cout << "f2: ";
    comprobarFunc( f2 );
}

Salida:

f1: La función está vacía. Nada que hacer.
f2: ¡La función no está vacía! Llamando a la función.
¡Esta es la función muestra!

[editar] Véase también

Verifica si la instancia de std::move_only_function tiene un objetivo.
(función miembro pública de std::move_only_function<R(Args...) cv ref noexcept(noex)>) [editar]