C++ named requirements: Callable
Un tipo Callable es un tipo para el cual las operaciones INVOKE y INVOKE<R> (utilizadas por, por ejemplo, std::function , std::bind , y std::thread::thread ) son aplicables.
|
|
(desde C++17) |
|
|
(desde C++23) |
Contenidos |
Requisitos
El tipo
T
satisface
Callable
si
Dado
-
f, un objeto de tipoT, -
ArgTypes, lista adecuada de tipos de argumentos, -
R, tipo de retorno adecuado.
Las siguientes expresiones deben ser válidas:
| Expresión | Requisitos |
|---|---|
| INVOKE<R> ( f, std:: declval < ArgTypes > ( ) ... ) | La expresión está bien formada en contexto no evaluado. |
Notas
Pointers to data members son Callable , aunque no se realicen llamadas a funciones.
Biblioteca estándar
Además, las siguientes facilidades de la biblioteca estándar aceptan cualquier Callable type (no solo FunctionObject ):
|
(C++11)
|
contenedor copiable de cualquier objeto invocable copiable
(plantilla de clase) |
|
(C++23)
|
contenedor no copiable de cualquier objeto invocable que admita calificadores en una firma de llamada dada
(plantilla de clase) |
|
(C++26)
|
contenedor copiable de cualquier objeto invocable copiable que admita calificadores en una firma de llamada dada
(plantilla de clase) |
|
(C++26)
|
contenedor no propietario de cualquier objeto invocable
(plantilla de clase) |
|
(C++11)
|
vincula uno o más argumentos a un objeto función
(plantilla de función) |
|
(C++20)
(C++23)
|
vincula un número variable de argumentos, en orden, a un objeto función
(plantilla de función) |
|
(C++11)
|
CopyConstructible
y
CopyAssignable
contenedor de referencia
(plantilla de clase) |
|
(C++11)
(removed in C++20)
(C++17)
|
deduce el tipo de resultado de invocar un objeto invocable con un conjunto de argumentos
(plantilla de clase) |
|
(C++11)
|
gestiona un hilo separado
(clase) |
|
(C++20)
|
std::thread
con soporte para auto-unirse y cancelación
(clase) |
|
(C++11)
|
invoca una función solo una vez incluso si se llama desde múltiples hilos
(plantilla de función) |
|
(C++11)
|
ejecuta una función de forma asíncrona (potencialmente en un nuevo hilo) y devuelve un
std::future
que contendrá el resultado
(plantilla de función) |
|
(C++11)
|
empaqueta una función para almacenar su valor de retorno para recuperación asíncrona
(plantilla de clase) |
Véase también
|
verifica si un tipo puede ser invocado (como si fuera mediante
std::invoke
) con los tipos de argumentos dados
(plantilla de clase) |
|
|
(C++20)
|
especifica que un tipo invocable puede ser llamado con un conjunto dado de tipos de argumentos
(concepto) |
|
(C++17)
(C++23)
|
invoca cualquier objeto
Callable
con los argumentos dados
y posibilidad de especificar el tipo de retorno
(desde C++23)
(plantilla de función) |