std::coroutine_handle<Promise>:: operator(), std::coroutine_handle<Promise>:: resume
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Coroutine traits | ||||
|
(C++20)
|
||||
| Coroutine handle | ||||
|
(C++20)
|
||||
| No-op coroutines | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Trivial awaitables | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Range generators | ||||
|
(C++23)
|
| Member functions | ||||
| Conversion | ||||
| Observers | ||||
| Control | ||||
|
coroutine_handle::operator()
coroutine_handle::resume
|
||||
| Promise access | ||||
| Export/import | ||||
| Non-member functions | ||||
| Helper classes | ||||
|
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) |
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
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
destruye una corrutina
(función miembro pública) |