Namespaces
Variants

std::coroutine_handle<Promise>:: operator(), std::coroutine_handle<Promise>:: resume

From cppreference.net
Utilities library
Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
Range generators
(C++23)
Miembro de otras especializaciones
void operator ( ) ( ) const ;
void resume ( ) const ;
(1) (desde C++20)
Miembro de la especialización std::coroutine_handle<std::noop_coroutine_promise>
constexpr void operator ( ) ( ) const noexcept ;
constexpr void resume ( ) const noexcept ;
(2) (desde C++20)
1) Reanuda la ejecución de la corrutina a la que * this hace referencia, o no hace nada si la corrutina es una corrutina no operativa.
2) No hace nada.

El comportamiento es indefinido si * this no se refiere a una corrutina suspendida, o la corrutina no es una corrutina no-op y está suspendida en su punto de suspensión final. Una reanudación concurrente de la corrutina puede resultar en una carrera de datos.

La reanudación de una corrutina en un agente de ejecución diferente al que la suspendió tiene un comportamiento definido por la implementación, a menos que cada agente de ejecución sea un hilo representado por std::thread o std::jthread , o sea el hilo que ejecuta main .

Contenidos

Parámetros

(ninguno)

Valor de retorno

(ninguno)

Excepciones

Si se lanza una excepción durante la ejecución de la corrutina, la excepción es capturada y unhandled_exception es llamado en el objeto promise de la corrutina. Si la llamada a unhandled_exception lanza o relanza una excepción, esa excepción se propaga.

Notas

Una corrutina que se reanuda en un agente de ejecución diferente debe evitar depender de una identidad de hilo consistente, como mantener un objeto mutex a través de un punto de suspensión.

Ejemplo

Véase también

destruye una corrutina
(función miembro pública)