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)
Membre d'autres spécialisations
void operator ( ) ( ) const ;
void resume ( ) const ;
(1) (depuis C++20)
Membre de la spécialisation std::coroutine_handle<std::noop_coroutine_promise>
constexpr void operator ( ) ( ) const noexcept ;
constexpr void resume ( ) const noexcept ;
(2) (depuis C++20)
1) Reprend l'exécution de la coroutine à laquelle * this fait référence, ou ne fait rien si la coroutine est une coroutine sans opération.
2) Ne fait rien.

Le comportement est indéfini si * this ne fait pas référence à une coroutine suspendue, ou si la coroutine n'est pas une coroutine no-op et est suspendue à son point de suspension final. Une reprise concurrente de la coroutine peut entraîner une course aux données.

La reprise d'une coroutine sur un agent d'exécution autre que celui sur lequel elle a été suspendue a un comportement défini par l'implémentation, sauf si chaque agent d'exécution est soit un thread représenté par std::thread ou std::jthread , ou est le thread exécutant main .

Table des matières

Paramètres

(aucun)

Valeur de retour

(aucun)

Exceptions

Si une exception est levée lors de l'exécution de la coroutine, l'exception est capturée et unhandled_exception est appelé sur l'objet promise de la coroutine. Si l'appel à unhandled_exception lève ou relève une exception, cette exception est propagée.

Notes

Une coroutine qui est reprise sur un agent d'exécution différent doit éviter de s'appuyer sur une identité de thread cohérente, comme maintenir un objet mutex au-delà d'un point de suspension.

Exemple

Voir aussi

détruit une coroutine
(fonction membre publique)