Namespaces
Variants

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

De fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support du langage
Support des types (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (obsolète en C++20)
 
Support des coroutines
Traits de coroutine
Descripteur de coroutine
Coroutines sans opération
Attendables triviaux
Générateurs de plages
(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 se réfère, 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 se réfère pas à une coroutine suspendue, ou si la coroutine n'est pas une coroutine sans opération 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, à moins que chaque agent d'exécution ne soit soit un thread représenté par std::thread ou std::jthread, soit le thread exécutant main.

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)