std::ranges::join_view<V>:: iterator <Const>:: operator++,--
constexpr
/*iterator*/
&
operator
++
(
)
;
|
(1) | (since C++20) |
constexpr
void
operator
++
(
int
)
;
|
(2) | (since C++20) |
constexpr
/*iterator*/
operator
++
(
int
)
requires
/*ref-is-glvalue*/
&&
ranges::
forward_range
<
Base
>
&&
|
(3) | (since C++20) |
constexpr
iterator
&
operator
--
(
)
requires
/*ref-is-glvalue*/
&&
ranges::
bidirectional_range
<
Base
>
&&
|
(4) | (since C++20) |
constexpr
/*iterator*/
operator
--
(
int
)
requires
/*ref-is-glvalue*/
&&
ranges::
bidirectional_range
<
Base
>
&&
|
(5) | (since C++20) |
Increments or decrements the underlying iterator.
Let
inner_
and
outer_
be the underlying iterators, and
parent_
be the pointer to parent
ranges::join_view
, the constant
/*ref-is-glvalue*/
be
std::
is_reference_v
<
ranges::
range_reference_t
<
Base
>>
.
- * outer_ , if /*ref-is-glvalue*/ == true ;
- * parent_ - > inner_ otherwise.
Equivalent to:
auto&& inner_rng = /*inner-range*/; if (++inner_ == ranges::end(inner_rng)) { ++outer_; satisfy(); } return *this;
auto tmp = *this; ++*this; return tmp;
if (outer_ == ranges::end(parent_->base_)) inner_ = ranges::end(*--outer_); while (inner_ == ranges::begin(*outer_)) inner_ = ranges::end(*--outer_); --inner_; return *this;
auto tmp = *this; --*this; return tmp;
Parameters
(none)