Helper iterator class to be used as iterator type in the subrange of this iterators value_type. More...
Public Member Functions | |
input_helper_iterator & | operator++ () noexcept |
Pre-increment will decrease the member variable basic_input_iterator::remaining. | |
input_helper_iterator | operator++ (int) noexcept |
Post-increment will decrease the member variable basic_input_iterator::remaining. | |
bool | operator== (sentinel_t const &) noexcept |
Compare to the sentinel type (same as sentinel type of the underlying range). | |
Constructors, destructor and assignment | |
constexpr | input_helper_iterator ()=default |
Defaulted. | |
constexpr | input_helper_iterator (input_helper_iterator const &)=default |
Defaulted. | |
constexpr | input_helper_iterator (input_helper_iterator &&)=default |
Defaulted. | |
constexpr input_helper_iterator & | operator= (input_helper_iterator const &)=default |
Defaulted. | |
constexpr input_helper_iterator & | operator= (input_helper_iterator &&)=default |
Defaulted. | |
~input_helper_iterator ()=default | |
Defaulted. | |
constexpr | input_helper_iterator (outer_it_type &outer_iterator, urng_it_t urng_it) |
Construct from the outer iterator and the underlying range iterator. | |
constexpr | input_helper_iterator (urng_it_t urng_it) |
Construct from the underlying range iterator. | |
Public Attributes | |
outer_it_type * | outer_it {nullptr} |
Pointer to the outer iterator (basic_input_iterator). | |
Helper iterator class to be used as iterator type in the subrange of this iterators value_type.
urng_t | The type of the underlying range. Must model std::ranges::view and std::input_range but not std::forward_range. |
The only purpose of this class is to wrap the iterator type it is inheriting from (urng_it_t) with the addition of decrementing the member variable basic_input_iterator::remaining
when being incremented. This way, the basic_input_iterator
can keep track of how many times the basic_input_iterator::urng_begin
has been incremented within a chunk. A chunk can therefore be represented by a std::ranges::subrange<input_helper_iterator, sentinel_t>
.