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

履歴 編集

class template
<generator>

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

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

## 概要

`generator`に対応する説明専用のイテレータ型。

`iterator`の動作説明のため、下記の説明用メンバを用いる。

- `coroutine_` : `coroutine_handle<promise_type>`型のコルーチンハンドル

## メンバ関数

### 構築・破棄

名前 | 説明 | 対応バージョン
--- | --- | ---
`(constructor)` | コンストラクタ | C++23
`(destructor)` | デストラクタ | C++23
`operator=` | 代入演算子 | C++23

### イテレータ

名前 | 説明 | 対応バージョン
--- | --- | ---
`operator*` | 間接参照 | C++23
`operator++` | インクリメント | C++23

### 比較演算子

名前 | 説明 | 対応バージョン
--- | --- | ---
`operator==` | 等値比較 | C++23
`operator!=` | 非等値比較 (`==`により使用可能) | C++23

## メンバ型

名前 | 説明 | 対応バージョン
--- | --- | ---
`value_type` | 要素型となる説明用の型`value` | C++23
`difference_type` | 2つの値の差を表す整数型`ptrdiff_t` | C++23

## バージョン

### 言語

- C++23

### 処理系

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

## 参照

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