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)
Mitglied anderer Spezialisierungen
void operator ( ) ( ) const ;
void resume ( ) const ;
(1) (seit C++20)
Mitglied der Spezialisierung std::coroutine_handle<std::noop_coroutine_promise>
constexpr void operator ( ) ( ) const noexcept ;
constexpr void resume ( ) const noexcept ;
(2) (seit C++20)
1) Setzt die Ausführung der Coroutine fort, auf die * this verweist, oder tut nichts, wenn die Coroutine eine No-Op-Coroutine ist.
2) Tut nichts.

Das Verhalten ist undefiniert, falls * this nicht auf eine suspendierte Coroutine verweist oder die Coroutine keine No-Op-Coroutine ist und an ihrem finalen Suspend-Punkt suspendiert ist. Eine gleichzeitige Wiederaufnahme der Coroutine kann zu einem Data Race führen.

Die Wiederaufnahme einer Coroutine auf einem Ausführungsagenten, der nicht derjenige ist, auf dem sie angehalten wurde, hat implementierungsdefiniertes Verhalten, es sei denn, jeder Ausführungsagent ist entweder ein durch std::thread oder std::jthread repräsentierter Thread oder ist der Thread, der main ausführt.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

(keine)

Exceptions

Wenn eine Ausnahme aus der Ausführung der Coroutine geworfen wird, wird die Ausnahme abgefangen und unhandled_exception auf dem Promise-Objekt der Coroutine aufgerufen. Wenn der Aufruf von unhandled_exception eine Ausnahme wirft oder erneut wirft, wird diese Ausnahme weitergegeben.

Hinweise

Eine Coroutine, die auf einem anderen Ausführungsagenten fortgesetzt wird, sollte es vermeiden, sich durchgängig auf eine konsistente Thread-Identität zu verlassen, wie etwa das Halten eines Mutex-Objekts über einen Suspend-Punkt hinweg.

Beispiel

Siehe auch

zerstört eine Coroutine
(öffentliche Elementfunktion)