std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume
| 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) |
*this se réfère, ou ne fait rien si la coroutine est une coroutine sans opération.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
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
détruit une coroutine
(fonction membre publique) |