最終更新日時: 2026年06月06日 22時51分43秒 (JST)
yoh が更新

履歴 編集

class
<execution>

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

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

## 概要

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

## クラス仕様

説明用の`prom`を`promise_type`型のオブジェクト、`tsk`を`prom.get_return_object()`で作成される`task`型のオブジェクトとする。説明ではReceiver `Rcvr`に対して、`task::state<Rcvr>::start`の評価中に`tsk`と関連付けられる`STATE(prom)`, `RCVR(prom)`, `SCHED(prom)`を用いる。

## メンバ関数

### 構築・破棄

名前 | 説明 | 対応バージョン
--- | --- | ---
`(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++:

## 参照

- P3552R3 Add a Coroutine Task Type
- LWG4415. `task::promise_type::uncaught_exception` seems to be misnamed
- LWG4339. `task`'s coroutine frame may be released late
- LWG4347. `task`'s stop source is always created
- P3980R1 Task's Allocator Use