std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume
ja.cppreference.net より
| 他の特殊化のメンバ |
||
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)
*thisが参照するコルーチンの実行を再開し、そのコルーチンがno-opコルーチンの場合は何もしません。2) 何もしません。
*thisが中断中のコルーチンを参照していない場合、またはコルーチンがno-opコルーチンではなく最終中断点で中断している場合、動作は未定義です。コルーチンの同時再開はデータ競合を引き起こす可能性があります。
コルーチンが中断された実行主体とは異なる実行主体上での再開は、各実行主体がstd::threadまたはstd::jthreadで表されるスレッドであるか、mainを実行しているスレッドである場合を除き、処理系定義の動作となります。
パラメータ
(なし)
戻り値
(なし)
例外
コルーチンの実行中に例外がスローされた場合、その例外は捕捉され、コルーチンのpromiseオブジェクトの
unhandled_exception
が呼び出されます。
unhandled_exception
の呼び出しが例外をスローまたは再スローした場合、その例外は伝播されます。
注記
異なる実行エージェントで再開されるコルーチンは、一時停止ポイントを跨いでミューテックスオブジェクトを保持するなど、スレッドIDの一貫性に依存することを避けるべきです。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
コルーチンを破棄する
(公開メンバ関数) |