Namensräume
Varianten
Aktionen

std::ranges::join_view<V>::iterator<Const>:operator++,--

Von cppreference.com
< cpp‎ | ranges‎ | join view‎ | iterator
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
constexpr /*iterator*/& operator++();
(1) (seit C++20)
constexpr void operator++( int );
(2) (seit C++20)
constexpr /*iterator*/ operator++( int )

    vorausgesetzt /*ref-is-glvalue*/ && ranges::forward_range<Base> &&

             ranges::forward_range<ranges::range_reference_t<Base>>;
(3) (seit C++20)
constexpr iterator& operator--()

    vorausgesetzt /*ref-is-glvalue*/ && ranges::bidirectional_range<Base> &&
             ranges::bidirectional_range<ranges::range_reference_t<Base>> &&

             ranges::common_range<ranges::range_reference_t<Base>>;
(4) (seit C++20)
constexpr /*Iterator*/ operator--( int )

    vorausgesetzt /*ref-is-glvalue*/ && ranges::bidirectional_range<Base> &&
             ranges::bidirectional_range<ranges::range_reference_t<Base>> &&

             ranges::common_range<ranges::range_reference_t<Base>>;
(5) (seit C++20)

Inkrementiert oder dekrementiert den zugrunde liegenden Iterator.

Seien inner_ und outer_ die zugrunde liegenden Iteratoren und parent_ der Zeiger auf die Eltern-ranges::join_view, wobei die Konstante /*ref-is-glvalue*/ std::is_reference_v<ranges::range_reference_t<Base>> ist.

1) Sei /*inner-range*/
  • *outer_, wenn /*ref-is-glvalue*/ = = true;
  • *parent_->inner_ andernfalls.

Äquivalent zu

auto&& inner_rng = /*inner-range*/;
if (++inner_ == ranges::end(inner_rng))
{
    ++outer_;
    satisfy();
}
return *this;
2) Entspricht: ++*this.
3) Äquivalent zu
auto tmp = *this;
++*this;
return tmp;
4) Äquivalent zu
if (outer_ == ranges::end(parent_->base_))
    inner_ = ranges::end(*--outer_);
while (inner_ == ranges::begin(*outer_))
    inner_ = ranges::end(*--outer_);
--inner_;
return *this;
5) Äquivalent zu
auto tmp = *this;
--*this;
return tmp;

[bearbeiten] Parameter

(keine)

[bearbeiten] Rückgabewert

1,4) *this
2) (keiner)
3,5) eine Kopie von *this, die vor der Änderung erstellt wurde.