Namespaces
Variants

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

Von de.cppreference.net
 
 
Bereichsbibliothek
Bereichsadapter
 
 
friend constexpr /*iterator*/ operator+( const /*iterator*/& i,
                                         difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(1) (seit C++23)
friend constexpr /*iterator*/ operator+( difference_type n,
                                         const /*iterator*/& i )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(2) (seit C++23)
friend constexpr /*iterator*/ operator-( const /*iterator*/& i,
                                         difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(3) (seit C++23)
friend constexpr difference_type operator-( const /*iterator*/& i,
                                            const /*iterator*/& j )
    requires
        /*cartesian-is-sized-sentinel*/<Const, iterator_t, First, Vs...>;
(4) (seit 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) (seit 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) (seit C++23)

Führt Iterator-Arithmetik durch oder berechnet den Abstand.

Sei current_ das zugrundeliegende Tupel von Iteratoren und parent_ der zugrundeliegende Zeiger auf cartesian_product_view.

1) Äquivalent zu: return /*iterator*/(i) += n;.
2) Äquivalent zu: return i + n;.
3) Äquivalent zu: return /*iterator*/(i) -= n;.
4) Äquivalent zu: return i.distance_from(j.current_);.
5) Sei /*end-tuple*/ ein Objekt eines Typs, der eine Spezialisierung von std::tuple ist, sodass:
  • std::get<0>(/*end-tuple*/) denselben Wert hat wie ranges::end(std::get<0>(i.parent_->bases_));
  • std::get<N>(/*end-tuple*/) denselben Wert hat wie ranges::begin(std::get<N>(i.parent_->bases_)) für jede ganze Zahl 1 ≤ N ≤ sizeof...(Vs).
Äquivalent zu: return i.distance_from(/*end-tuple*/);.
6) Äquivalent zu: return -(i - s);.

Diese Funktionen sind bei gewöhnlicher unqualifizierter oder qualifizierter Suche nicht sichtbar und können nur durch argumentabhängige Suche gefunden werden, wenn cartesian_product_view::iterator<Const> eine assoziierte Klasse der Argumente ist.

Parameter

i, j - die Iteratoren
n - die Position relativ zum aktuellen Standort
s - der Sentinel

Rückgabewert

1,2) Ein inkrementierter Iterator.
3) Ein dekrementierter Iterator.
4) Ein Abstand zwischen gegebenen Iteratoren.
5,6) Ein Abstand zwischen gegebenem Iterator und Sentinel.

Beispiel

Siehe auch

erhöht oder verringert den zugrundeliegenden Iterator
(öffentliche Elementfunktion)