On this page
std::generator<Ref,V,Allocator>::iterator
|
(since C++23) (exposition only*) |
The return type of generator::begin
.
Models indirectly_readable
and input_iterator
.
Member types
Member type | Definition |
---|---|
value_type |
std::generator::value |
difference_type |
std::ptrdiff_t |
Data members
Member name | Definition |
---|---|
coroutine_ (private) |
A coroutine handle of type std::coroutine_handle<std::generator::promise_type> .(exposition-only member object*) |
Member functions
constructs an iterator (public member function) |
|
assigns another iterator (public member function) |
|
returns an underlying value (public member function) |
|
advances the iterator (public member function) |
std::generator::iterator::iterator
|
(since C++23) |
Initializes coroutine_
with std::exchange(other.coroutine_, {});
.
std::generator::iterator::operator=
|
(since C++23) |
Equivalent to coroutine_ = std::exchange(other.coroutine_, {});
.
Returns: *this
.
std::generator::iterator::operator*
|
(since C++23) |
- Let
reference
be thestd::generator
's underlying type. - Let for some generator object
x
itscoroutine_
be in the stack*x.active_
. - Let
x.active_->top()
refer to a suspended coroutine with promise objectp
.
Equivalent to return static_cast<reference>(*p.value_);
.
std::generator::iterator::operator++
|
(1) | (since C++23) |
|
(2) | (since C++23) |
x
the coroutine_
be in the stack *x.active_
.
x.active_->top().resume()
.
*this
.
++*this;
.
Non-member functions
(C++23)
|
compares the underlying iterator with a sentinel (function) |
operator==(std::generator::iterator)
|
(since C++23) |
Equivalent to return i.coroutine_.done();
.
The !=
operator is synthesized from operator==
.
This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::generator::iterator
is an associated class of the arguments.
Example
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/coroutine/generator/iterator