Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | ranges‎ | concat view‎ | iterator
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
friend constexpr /*iterator*/

    operator+( const /*iterator*/& it, difference_type n )

        requires /*concat-is-random-access*/<Const, Views...>;
(1) (seit C++26)
friend constexpr /*iterator*/

    operator+( difference_type n, const /*iterator*/& it )

        requires /*concat-is-random-access*/<Const, Views...>;
(2) (seit C++26)
friend constexpr /*iterator*/

    operator-( const /*iterator*/& it, difference_type n )

        requires /*concat-is-random-access*/<Const, Views...>;
(3) (seit C++26)
friend constexpr difference_type

    operator-( const /*iterator*/& x, const /*iterator*/& y )

        requires /*concat-is-random-access*/<Const, Views...>;
(4) (seit C++26)
friend constexpr difference_type

    operator-( const /*iterator*/& x, std::default_sentinel_t )

        requires /* see description */;
(5) (seit C++26)
friend constexpr difference_type

    operator-( std::default_sentinel_t, const /*iterator*/& x )

        requires /* see description */;
(6) (seit C++26)

Inkrementiert oder dekrementiert den Iterator.

1) Äquivalent zu auto t = it; t += n; return t;.
2) Äquivalent zu return it + n;.
3) Äquivalent zu auto t = it; t -= n; return t;.
4) Sei Ix x.it_ .index() und Iy y.it_ .index()
Wenn x.it_ .valueless_by_exception() || y.it_ .valueless_by_exception() true ist, ist das Verhalten undefiniert.
5) Sei Ix x.it_ .index(), äquivalent zu difference_type result = ranges::distance(x.get-iter <Ix>(), x.get-end <Ix>());
for (std::size_t I = Ix + 1, count = sizeof...(Views); I < count; I++)
    result += ranges::distance(x.get-view <I>());
return -result;
.
Sei Fs das Pack, das aus allen Elementen von Views mit Ausnahme des ersten Elements besteht. Der Ausdruck in der requires-Klausel ist äquivalent zu

(std::sized_sentinel_for<ranges::sentinel_t<maybe-const <Const, Views>>,
                         ranges::iterator_t<maybe-const <Const, Views>>> && ...) &&
    (ranges::sized_range<maybe-const <Const, Fs>> && ...)

.
Wenn x.it_ .valueless_by_exception() true ist, ist das Verhalten undefiniert.
6) Äquivalent zu return -(x - std::default_sentinel);.
Sei Fs das Pack, das aus allen Elementen von Views mit Ausnahme des ersten Elements besteht. Der Ausdruck in der requires-Klausel ist äquivalent zu

(std::sized_sentinel_for<ranges::sentinel_t<maybe-const <Const, Views>>,
                         ranges::iterator_t<maybe-const <Const, Views>>> && ...) &&
    (ranges::sized_range<maybe-const <Const, Fs>> && ...)

.
Wenn x.it_ .valueless_by_exception() true ist, ist das Verhalten undefiniert.

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

Inhalt

[bearbeiten] Parameter

it, x, y - die Iteratoren
n - eine Position relativ zur aktuellen Position

[bearbeiten] Rückgabewert

Wie oben beschrieben.

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

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