最終更新日時(UTC):
が更新

履歴 編集

class
<execution>

std::execution::task::promise_type(C++26)

namespace std::execution {
  template <class T, class Environment>
  class task<T, Environment>::promise_type;
}

概要

タスクコルーチン動作を制御するPromise型。 プログラマが本クラスを直接利用することは想定されていない。

クラス仕様

説明用のprompromise_type型のオブジェクト、tskprom.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

処理系

参照