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*/ ;
( exposition only* )

generator::begin 的返回类型。模型化 indirectly_readable input_iterator

目录

成员类型

成员类型 定义
value_type std::generator::value
difference_type std::ptrdiff_t

数据成员

成员 描述
std:: coroutine_handle < std :: generator :: promise_type > coroutine_ 协程句柄
( 仅用于说明的成员对象* )

成员函数

构造迭代器
(公开成员函数)
赋值另一个迭代器
(公开成员函数)
返回底层值
(公开成员函数)
推进迭代器
(公开成员函数)

std::generator:: iterator :: iterator

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

使用 std:: exchange ( other. coroutine_ , { } ) ; 初始化 coroutine_

std::generator:: iterator :: operator=

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

等价于 coroutine_ = std:: exchange ( other. coroutine_ , { } ) ;

返回值: * this

std::generator:: iterator :: operator*

reference operator * ( ) const
noexcept ( std:: is_nothrow_copy_constructible_v < reference > ) ;
(since 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) (since C++23)
constexpr void operator ++ ( int ) ;
(2) (since 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 ) ;
(since C++23)

等价于 return i. coroutine_ . done ( ) ;

!= 运算符由 operator== 合成

此函数对普通的 非限定查找 限定查找 不可见,仅当 std::generator:: iterator 是参数的关联类时,才能通过 实参依赖查找 找到。

示例