Namespaces
Variants

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

De fr.cppreference.net
 
 
Bibliothèque de plages
Adaptateurs de plage
 
 
constexpr /*iterator*/& operator++();
(1) (depuis C++20)
constexpr void operator++( int );
(2) (depuis C++20)
constexpr /*iterator*/ operator++( int )
    requires /*ref-is-glvalue*/ && ranges::forward_range<Base> &&
             ranges::forward_range<ranges::range_reference_t<Base>>;
(3) (depuis C++20)
constexpr iterator& operator--()
    requires /*ref-is-glvalue*/ && ranges::bidirectional_range<Base> &&
             ranges::bidirectional_range<ranges::range_reference_t<Base>> &&
             ranges::common_range<ranges::range_reference_t<Base>>;
(4) (depuis C++20)
constexpr /*iterator*/ operator--( int )
    requires /*ref-is-glvalue*/ && ranges::bidirectional_range<Base> &&
             ranges::bidirectional_range<ranges::range_reference_t<Base>> &&
             ranges::common_range<ranges::range_reference_t<Base>>;
(5) (depuis C++20)

Incrémente ou décrémente l'itérateur sous-jacent.

Soient inner_ et outer_ les itérateurs sous-jacents, et parent_ le pointeur vers la vue parente ranges::join_view, la constante /*ref-is-glvalue*/ étant std::is_reference_v<ranges::range_reference_t<Base>>.

1) Soit /*inner-range*/ :
  • *outer_, si /*ref-is-glvalue*/ == true ;
  • *parent_->inner_ sinon.

Équivalent à :

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

Paramètres

(aucun)

Valeur de retour

1,4) * this
2) (aucun)
3,5) une copie de * this qui a été réalisée avant la modification.