Namespaces
Variants

std::generator<Ref,V,Allocator>::iterator

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変個引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20 で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap と 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通語彙型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
コルーチンサポート
コルーチン特性
コルーチンハンドル
no-op コルーチン
自明な待機可能オブジェクト
範囲ジェネレータ
(C++23)
 
範囲ライブラリ
範囲アダプタ
 
 
class /*iterator*/;
(説明専用*)

の戻り値の型。generator::begin は indirectly_readable と input_iterator をモデル化する。

メンバ型

メンバ 定義
value_type std::generator::value
difference_type std::ptrdiff_t

データメンバ

メンバ 説明
std::coroutine_handle<std::generator::promise_type> coroutine_ コルーチンハンドル
(説明専用メンバオブジェクト*)

メンバー関数

イテレータを構築する
(public member function)
別のイテレータを代入する
(public member function)
基になる値を返す
(public member function)
イテレータを進める
(public member function)

std::generator:: iterator :: iterator

/*iterator*/ ( /*iterator*/ && other ) noexcept ;
(C++23以降)

coroutine_ を std:: exchange ( other. coroutine_ , { } ) ; で初期化します。

std::generator:: iterator :: operator=

/*iterator*/ & operator = ( /*iterator*/ && other ) noexcept ;
(C++23以降)

coroutine_ = std::exchange(other.coroutine_, {}); と等価。

戻り値: * this 。

(注:指定されたテキストブロック内に翻訳対象の自然言語テキストが含まれていないため、HTML構造はそのまま保持されています)

std::generator:: iterator :: operator*

reference operator * ( ) const
noexcept ( std:: is_nothrow_copy_constructible_v < reference > ) ;
(C++23以降)
  1. reference を std::generator の基盤となる型とする。
  2. ジェネレータオブジェクト x に対して、その coroutine_ がスタック * x. active_ 内にあるとする。
  3. x. active_ - > top ( ) がプロミスオブジェクト p を持つ中断されたコルーチンを参照しているとする。

以下と等価: return static_cast < reference > ( * p. value_ ) ; 。

std::generator:: iterator :: operator++

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (C++23以降)
constexpr void operator ++ ( int ) ;
(2) (C++23以降)
1) あるジェネレータオブジェクト x について、 coroutine_ がスタック * x. active_ 内にあるとする。
以下と等価: x. active_ - > top ( ) . resume ( ) 。
戻り値: * this 。
2) 以下と等価: ++* this ; 。

非メンバー関数

(C++23)
基底イテレータとセンチネルを比較する
(関数)

operator== (std::generator:: iterator )

friend bool operator == ( const /*iterator*/ & i, std:: default_sentinel_t ) ;
(C++23以降)

return i. coroutine_ . done ( ) ; と等価。

!= 演算子は synthesized され、 operator== から生成される。

この関数は通常の 非修飾名前探索 または 修飾名前探索 では可視化されず、 実引数依存名前探索 によってのみ、 std::generator:: iterator が引数の関連クラスである場合に見つけることができる。

例