Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | ranges‎ | elements view‎ | iterator
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
friend constexpr /*iterator*/ operator+( const /*iterator*/& i, difference_type n )
    requires ranges::random_access_range<Base>;
(1) (seit C++20)
friend constexpr /*iterator*/ operator+( difference_type n, const /*iterator*/& i )
    requires ranges::random_access_range<Base>;
(2) (seit C++20)
friend constexpr /*iterator*/ operator-( const /*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 zurück, inkrementiert um n.
3) Gibt den Iterator i zurück, dekrementiert um n.
4) Gibt den Abstand zwischen x und y zurück.

Diese Funktionen sind für normale unqualifizierte oder qualifizierte Suche nicht sichtbar und können nur durch argumentabhängige Suche gefunden werden, wenn elements_view::iterator<Const> eine zugehörige Klasse der Argumente ist.

Inhalt

[edit] Parameter

i, x, y - die Iteratoren
n - Position relativ zur aktuellen Position

[edit] Rückgabewert

1,2) [&]{ auto j = i; j += n; return j; }()
3) [&]{ auto j = i; j -= n; return j; }()
4) x.base() - y.base()

[edit] Beispiel

[edit] Fehlerberichte

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

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3483 C++20 Der Unterschied von elements_view::iterator ist übermäßig eingeschränkt Anforderung wird gelockert