|
Range primitives | |||||||
|
Range concepts | |||||||||||||||||||
|
Range factories | |||||||||
|
Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Helper items | |||||||||||||||||
|
Member functions | ||||
Deduction guides | ||||
Iterator | ||||
join_view::iterator::operator++ join_view::iterator::operator++(int) join_view::iterator::operator-- join_view::iterator::operator--(int) | ||||
Sentinel | ||||
constexpr/*iterator*/& operator++(); | (1) | (since C++20) |
constexprvoid 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.
Letinner_
andouter_
be the underlying iterators, andparent_
be the pointer to parentranges::join_view, the constant/*ref-is-glvalue*/ bestd::is_reference_v<ranges::range_reference_t<Base>>.
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;
(none)