namespace std::execution {
template <class T, class Environment>
class task<T, Environment>::promise_type;
}
概要
タスクコルーチン動作を制御するPromise型。 プログラマが本クラスを直接利用することは想定されていない。
クラス仕様
説明用のpromをpromise_type型のオブジェクト、tskをprom.get_return_object()で作成されるtask型のオブジェクトとする。説明ではReceiverRcvrに対して、task::state<Rcvr>::startの評価中にtskと関連付けられるSTATE(prom), RCVR(prom), SCHED(prom)を用いる。
task::promise_typeクラスの動作説明のため、以下の説明専用メンバを用いる。
alloc:allocator_type型のアロケータオブジェクトsource:stop_source_type型の停止ソースオブジェクトtoken:stop_token_type型の停止トークンオブジェクトresult:optional<T>型の結果値(is_void_v<T> == falseの時のみ存在する)errors: 下記error-variant型のエラー値
説明専用のerror-variant型は、E...をerror_typesで表現されるexecution::completion_signatures特殊化のテンプレート引数型としたとき、variant<monostate, remove_cvref_t<E>...>において重複削除した型となる。
メンバ関数
構築・破棄
| 名前 | 説明 | 対応バージョン |
|---|---|---|
(constructor) |
コンストラクタ | C++26 |
(destructor) |
デストラクタ | C++26 |
コルーチン制御
| 名前 | 説明 | 対応バージョン |
|---|---|---|
get_return_object |
task戻り値の取得 |
C++26 |
initial_suspend |
初期サスペンドポイント動作の制御 | C++26 |
final_suspend |
最終サスペンドポイント動作の制御 | C++26 |
unhandled_exception |
未処理例外の制御 | C++26 |
return_void |
co_return文動作の制御 | C++26 |
return_value |
co_return文動作の制御 | C++26 |
yield_value |
co_yield式動作の制御 | C++26 |
await_transform |
co_await式動作の制御 | C++26 |
operator new |
new演算子オーバーロード | C++26 |
operator delete |
delete演算子オーバーロード | C++26 |
実行制御ライブラリ
| 名前 | 説明 | 対応バージョン |
|---|---|---|
unhandled_stopped |
停止完了の制御 | C++26 |
get_env |
環境取得 | C++26 |
バージョン
言語
- C++26
処理系
- Clang:
- GCC:
- ICC:
- Visual C++: