◐ Shell
clean mode source ↗

Requisitos denominados de C++: Callable

De cppreference.com

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) [editar]
Envuelve un objeto invocable de cualquier tipo con la signatura de llamada a función especificada.
(plantilla de clase) [editar]
envoltura copiable de cualquier copia de objeto construible y llamable que admita calificadores en una firma de llamada determinada
(plantilla de clase) [editar]
envolvente no propietaria de cualquier objeto invocable
(plantilla de clase) [editar]

(C++11)

Vincula uno o más argumentos a un objeto función.
(plantilla de función) [editar]

(C++20)(C++23)

Vincula un número variable de argumentos, en orden, a un objeto función.
(plantilla de función) [editar]
Envoltorio de referencia CopyConstructible y CopyAssignable.
(plantilla de clase) [editar]

(C++11)

Deduce el tipo de retorno de una expresión de llamada a la función.
(plantilla de clase) [editar]

(C++11)

Gestiona un hilo/subproceso independiente.
(clase) [editar]

(C++20)

std::thread con soporte para unión y cancelación automática.
(clase) [editar]

(C++11)

Invoca una función una sola vez inclusive si se llama desde varios hilos.
(plantilla de función) [editar]

(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) [editar]
Empaqueta una función para almacenar su valor de retorno para la recuperación asíncrona.
(plantilla de clase) [editar]

Véase también