Namespaces
Variants

operator+,-(ranges::cartesian_product_view::iterator)

De fr.cppreference.net
 
 
Bibliothèque de plages
Adaptateurs de plages
 
 
friend constexpr /*iterator*/ operator+( const /*iterator*/& i,
                                         difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(1) (depuis C++23)
friend constexpr /*iterator*/ operator+( difference_type n,
                                         const /*iterator*/& i )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(2) (depuis C++23)
friend constexpr /*iterator*/ operator-( const /*iterator*/& i,
                                         difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(3) (depuis C++23)
friend constexpr difference_type operator-( const /*iterator*/& i,
                                            const /*iterator*/& j )
    requires
        /*cartesian-is-sized-sentinel*/<Const, iterator_t, First, Vs...>;
(4) (depuis C++23)
friend constexpr difference_type operator-( const /*iterator*/& i,
                                            std::default_sentinel_t )
    requires
        /*cartesian-is-sized-sentinel*/<Const, ranges::sentinel_t, First, Vs...>;
(5) (depuis C++23)
friend constexpr difference_type operator-( std::default_sentinel_t s,
                                            const /*iterator*/& i )
    requires
        /*cartesian-is-sized-sentinel*/<Const, ranges::sentinel_t, First, Vs...>;
(6) (depuis C++23)

Effectue une arithmétique d'itérateur ou calcule la distance.

Soit current_ le tuple sous-jacent d'itérateurs et parent_ le pointeur sous-jacent vers cartesian_product_view.

1) Équivalent à : return /*iterator*/(i) += n;.
2) Équivalent à : return i + n;.
3) Équivalent à : return /*iterator*/(i) -= n;.
4) Équivalent à : return i.distance_from(j.current_);.
5) Soit /*end-tuple*/ un objet d'un type qui est une spécialisation de std::tuple, tel que :
  • std::get<0>(/*end-tuple*/) a la même valeur que ranges::end(std::get<0>(i.parent_->bases_));
  • std::get<N>(/*end-tuple*/) a la même valeur que ranges::begin(std::get<N>(i.parent_->bases_)) pour tout entier 1 ≤ N ≤ sizeof...(Vs).
Équivalent à : return i.distance_from(/*end-tuple*/);.
6) Équivalent à : return -(i - s);.

Ces fonctions ne sont pas visibles par une recherche non qualifiée ou qualifiée ordinaire, et ne peuvent être trouvées que par une recherche dépendante des arguments lorsque cartesian_product_view::iterator<Const> est une classe associée des arguments.

Paramètres

i, j - les itérateurs
n - la position relative à l'emplacement actuel
s - le sentinelle

Valeur de retour

1,2) Un itérateur incrémenté.
3) Un itérateur décrémenté.
4) Une distance entre les itérateurs donnés.
5,6) Une distance entre l'itérateur donné et le sentinelle.

Exemple

Voir aussi

avance ou décrémente l'itérateur sous-jacent
(fonction membre publique)