Namespaces
Variants

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

Aus de.cppreference.net
 
 
Ranges-Bibliothek
Range-Adaptoren
 
 
friend constexpr /*iterator*/ operator+( /*iterator*/ i, difference_type n )
    requires ranges::random_access_range<Base>;
(1) (seit C++20)
friend constexpr /*iterator*/ operator+( difference_type n, /*iterator*/ i )
    requires ranges::random_access_range<Base>;
(2) (seit C++20)
friend constexpr /*iterator*/ operator-( /*iterator*/ i, difference_type n )
    requires ranges::random_access_range<Base>;
(3) (seit C++20)
friend constexpr difference_type operator-( const /*iterator*/& x,
                                            const /*iterator*/& y )
    requires std::sized_sentinel_for<ranges::iterator_t<Base>,
                                     ranges::iterator_t<Base>>;
(4) (seit C++20)
1,2) Gibt den Iterator i erhöht um n zurück.
3) Gibt den Iterator i verringert um n zurück.
4) Gibt den Abstand zwischen x und y zurück.

Diese Funktionen sind nicht für die gewöhnliche unqualifizierte oder qualifizierte Namenssuche sichtbar und können nur durch argumentabhängige Namenssuche gefunden werden, wenn transform_view::iterator<Const> eine assoziierte Klasse der Argumente ist.

Parameter

i, x, y - die Iteratoren.
n - Position relativ zum aktuellen Standort.

Rückgabewert

Sei parent_ der Zeiger auf das übergeordnete transform_view , current_ den zugrundeliegenden Iterator.

1,2) /*iterator*/ { * i. parent_ , i. current_ + n }
3) /*iterator*/ { * i. parent_ , i. current_ - n }
4) x. current_ - y. current_

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 3483 C++20 transform_view::iterator 's Differenz ist überbeschränkt Anforderung wurde gelockert