std:: generator<Ref,V,Allocator>:: iterator
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Coroutine traits | ||||
|
(C++20)
|
||||
| Coroutine handle | ||||
|
(C++20)
|
||||
| No-op coroutines | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Trivial awaitables | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Range generators | ||||
|
(C++23)
|
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
| Member functions | ||||
| promise_type | ||||
| Iterator | ||||
|
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) | |
-
令
reference为std::generator的底层类型。 -
对于某个生成器对象
x
,其
coroutine_位于栈 * x. active_ 中。 - 令 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) |
非成员函数
|
(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
是参数的关联类时,才能通过
实参依赖查找
找到。
示例
|
本节内容不完整
原因:缺少示例 |