std::coroutine_handle<Promise>:: operator(), std::coroutine_handle<Promise>:: resume
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Coroutine traits | ||||
|
(C++20)
|
||||
| Coroutine handle | ||||
|
(C++20)
|
||||
| No-op coroutines | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Trivial awaitables | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Range generators | ||||
|
(C++23)
|
| Member functions | ||||
| Conversion | ||||
| Observers | ||||
| Control | ||||
|
coroutine_handle::operator()
coroutine_handle::resume
|
||||
| Promise access | ||||
| Export/import | ||||
| Non-member functions | ||||
| Helper classes | ||||
|
他の特殊化のメンバー
|
||
|
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以降) |
動作は未定義である、もし * this が中断されたコルーチンを参照していない場合、またはコルーチンがno-opコルーチンではなく、その最終中断ポイントで中断されている場合。コルーチンの同時再開はデータ競合を引き起こす可能性がある。
コルーチンの再開が、中断された実行エージェントとは異なる実行エージェント上で行われる場合、その動作は実装定義となる。ただし、各実行エージェントが
std::thread
または
std::jthread
によって表されるスレッドであるか、
main
を実行しているスレッドである場合は除く。
目次 |
パラメータ
(なし)
戻り値
(なし)
例外
コルーチンの実行中に例外がスローされた場合、その例外は捕捉され、コルーチンのpromiseオブジェクトの
unhandled_exception
が呼び出されます。
unhandled_exception
の呼び出しが例外をスローまたは再スローした場合、その例外は伝播されます。
注記
異なる実行エージェントで再開されるコルーチンは、一時停止ポイントを跨いでミューテックスオブジェクトを保持するなど、スレッドIDの一貫性に依存することを避けるべきです。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
コルーチンを破棄する
(公開メンバ関数) |