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)
他の特殊化のメンバー
void operator ( ) ( ) const ;
void resume ( ) const ;
(1) (C++20以降)
特殊化 std::coroutine_handle<std::noop_coroutine_promise> のメンバー
constexpr void operator ( ) ( ) const noexcept ;
constexpr void resume ( ) const noexcept ;
(2) (C++20以降)
1) この参照先のコルーチンの実行を再開する。コルーチンがno-opコルーチンの場合は何も行わない。
2) 何もしません。

動作は未定義である、もし * this が中断されたコルーチンを参照していない場合、またはコルーチンがno-opコルーチンではなく、その最終中断ポイントで中断されている場合。コルーチンの同時再開はデータ競合を引き起こす可能性がある。

コルーチンの再開が、中断された実行エージェントとは異なる実行エージェント上で行われる場合、その動作は実装定義となる。ただし、各実行エージェントが std::thread または std::jthread によって表されるスレッドであるか、 main を実行しているスレッドである場合は除く。

目次

パラメータ

(なし)

戻り値

(なし)

例外

コルーチンの実行中に例外がスローされた場合、その例外は捕捉され、コルーチンのpromiseオブジェクトの unhandled_exception が呼び出されます。 unhandled_exception の呼び出しが例外をスローまたは再スローした場合、その例外は伝播されます。

注記

異なる実行エージェントで再開されるコルーチンは、一時停止ポイントを跨いでミューテックスオブジェクトを保持するなど、スレッドIDの一貫性に依存することを避けるべきです。

関連項目

コルーチンを破棄する
(公開メンバ関数)