Namespaces
Variants

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

From cppreference.net
Utilities library
Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
Range generators
(C++23)
Ranges library
Range adaptors
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 が引数の関連クラスである場合に見つけることができる。