最終更新日時: 2026年03月26日 13時52分07秒 (JST)
Raclamusi が更新

履歴 編集

class template
<generator>

# std::generator::promise_type(C++23)

    namespace std {
      template<class Ref, class V, class Allocator>
      class generator<Ref, V, Allocator>::promise_type {
        ...
      };
    }

## 概要

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

`generator::promise_type`クラスの動作説明のため、以下の説明専用メンバを用いる。

- `value_` : `add_pointer_t<yielded>`型の生成値
- `except_` : `exception_ptr`型の例外ポインタ

## メンバ関数

### コルーチン

名前 | 説明 | 対応バージョン
--- | --- | ---
`get_return_object` | `generator` 戻り値の取得 | C++23
`initial_suspend` | 初期サスペンドポイント動作の制御 | C++23
`final_suspend` | 最終サスペンドポイント動作の制御 | C++23
`yield_value` | co_yield式動作の制御 | C++23
`await_transform` | co_await式動作の制御 | C++23
`return_void` | コルーチンreturn動作の制御 | C++23
`unhandled_exception` | 未処理例外の制御 | C++23
`operator new` | new演算子オーバーロード | C++23
`operator delete` | delete演算子オーバーロード | C++23

## バージョン

### 言語

- C++23

### 処理系

- Clang:
- GCC:
- ICC:
- Visual C++:

## 関連項目

- `std::ranges::elements_of`

## 参照

- P2502R2 `std::generator`: Synchronous Coroutine Generator for Ranges