std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume
| Miembro de otras especializaciones |
||
void operator()() const;
void resume() const;
|
(1) | (desde C++20) |
| Miembro de especialización std::coroutine_handle<std::noop_coroutine_promise> |
||
constexpr void operator()() const noexcept;
constexpr void resume() const noexcept;
|
(2) | (desde C++20) |
*this se refiere, o no hace nada si la corrutina es una corrutina no-op.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 condición de carrera.
La reanudación de una corrutina en un agente de ejecución diferente de aquel en el que fue suspendida 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 es el hilo que ejecuta main.
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
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
destruye una corrutina
(función miembro pública) |