Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
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 aus oder berechnet den Abstand.

Sei current_ das zugrunde liegende Tupel von Iteratoren und parent_ ein 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 tuple ist, so dass
  • std::get<0>(/*end-tuple*/) denselben Wert wie ranges::end(std::get<0>(i.parent_->bases_)); hat.
  • std::get<N>(/*end-tuple*/) denselben Wert 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 für gewöhnliche unqualifizierte oder qualifizierte Suche nicht sichtbar und können nur durch argumentabhängige Suche gefunden werden, wenn cartesian_product_view::iterator<Const> eine zugehörige Klasse der Argumente ist.

Inhalt

[edit] Parameter

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

[edit] Rückgabewert

1,2) Ein erhöhter Iterator.
3) Ein verringerter Iterator.
4) Ein Abstand zwischen den gegebenen Iteratoren.
5,6) Ein Abstand zwischen dem gegebenen Iterator und Sentinel.

[edit] Beispiel

[edit] Siehe auch

bewegt den zugrundeliegenden Iterator vorwärts oder rückwärts
(public member function) [edit]