Espacios de nombres
Variantes
Acciones
 
 
Requisitos denominados de C++
Números aleatorios
Concurrencia
(C++11)
(C++11)
Rangos
Vista multidimensional
Otros

 

Un tipo Callable (invocable) es un tipo para el que las operaciones INVOKE e INVOKE<R> (p. ej., usada por std::function, std::bind, y std::thread::thread) son aplicables.

INVOKE se puede realizar explícitamente utilizando la función de biblioteca std::invoke.

(desde C++17)

INVOKE<R> se puede realizar explícitamente utilizando la función de biblioteca std::invoke_r.

(desde C++23)

Requisitos

El tipo T satisface a Callable si

Dados

  • f, un objeto de tipo T,
  • ArgTypes, una lista adecuada de tipos argumento, y
  • R, un valor 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 un contexto no evaluado

Notas

Los punteros a datos miembro son Callable, aun cuando no se hagan llamadas a función.

Biblioteca estándar

Además, los siguientes servicios de la biblioteca estándar aceptan cualquier tipo Callable (no solo FunctionObject):

(C++11)
Envuelve un objeto que puede ser llamado a cualquier tipo con la signatura de llamada a función especificada.
(plantilla de clase)
Envuelve un objeto invocable de cualquier tipo con la signatura de llamada a función especificada.
(plantilla de clase)
envoltura copiable de cualquier copia de objeto construible y llamable que admita calificadores en una firma de llamada determinada
(plantilla de clase)
envolvente no propietaria 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)
Envoltorio de referencia CopyConstructible y CopyAssignable.
(plantilla de clase)
(C++11)
Deduce el tipo de retorno de una expresión de llamada a la función.
(plantilla de clase)
(C++11)
Gestiona un hilo/subproceso independiente.
(clase)
(C++20)
std::thread con soporte para unión y cancelación automática.
(clase)
(C++11)
Invoca una función una sola vez inclusive si se llama desde varios hilos.
(plantilla de función)
(C++11)
Ejecuta una función asíncronamente (posiblemente en un nuevo hilo) y devuelve un std::future que contendrá el resultado.
(plantilla de función)
Empaqueta una función para almacenar su valor de retorno para la recuperación asíncrona.
(plantilla de clase)


Véase también

Comprueba si un tipo puede invocarse (como si lo fuera por std::invoke) con el número de argumentos dado.
(plantilla de clase)
especifica que un tipo invocable puede ser invocado con un conjunto dado de tipos de argumentos
(concepto)
(C++17)(C++23)
Invoca cualquier objeto Callable con los argumentos dados y la posibilidad de especificar el tipo de retorno. (desde C++23)
(plantilla de función)