Namensräume
Varianten
Aktionen

std::ranges::repeat_view<W, Bound>::iterator

Von cppreference.com
< cpp‎ | ranges‎ | repeat view
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
struct /*iterator*/;
(nur Exposition*)

ranges::repeat_view<W, Bound>::iterator ist der Typ der Iteratoren, die von begin() und end() von ranges::repeat_view<W, Bound> zurückgegeben werden.

Inhalt

[bearbeiten] Geschachtelte Typen

Nur-Exposition-Typen
Typ Definition
index-type std::conditional_t<std::same_as<Bound, std::unreachable_sentinel_t>,
                   std::ptrdiff_t, Bound>
((nur zur Veranschaulichung)*)
Iterator-Eigenschaftstypen
Typ Definition
iterator_concept std::random_access_iterator_tag
iterator_category std::random_access_iterator_tag
value_type W
difference_type std::conditional_t<is-signed-integer-like <index-type >,
                   index-type , iota-diff-t <index-type >>

[bearbeiten] Datenmember

Mitglied Definition
const W* value_ Ein Zeiger auf den zu wiederholenden Wert
((exposition-only member object*)
index-type current_ Die aktuelle Position
((exposition-only member object*)

[bearbeiten] Memberfunktionen

std::ranges::repeat_view::iterator::iterator

/*iterator*/() = default;
(1) (seit C++23)
constexpr explicit /*iterator*/
    ( const W* value, /*index-type*/ b = /*index-type*/() );
(2) (seit C++23)
(nur Exposition*)

Konstruiert einen Iterator. Überladung (2) wird von begin() und end() von ranges::repeat_view aufgerufen.

1) Initialisiert value_ mit nullptr und wertinitialisiert current_ .
2) Initialisiert value_ mit value und current_ mit b.
Wenn Bound nicht std::unreachable_sentinel_t ist und b negativ ist, ist das Verhalten undefiniert.

std::ranges::repeat_view::iterator::operator*

constexpr const W& operator*() const noexcept;
(seit C++23)

Gibt *value_ zurück.

std::ranges::repeat_view::iterator::operator[]

constexpr const W& operator[]( difference_type n ) const noexcept;
(seit C++23)

Gibt *(*this + n) zurück.

std::ranges::repeat_view::iterator::operator++

constexpr /*iterator*/& operator++();
(1) (seit C++23)
constexpr void operator++(int);
(2) (seit C++23)
1) Entspricht ++current_ ; return *this;.
2) Entspricht auto tmp = *this; ++*this; return tmp;.

std::ranges::repeat_view::iterator::operator--

constexpr /*iterator*/& operator--();
(1) (seit C++23)
constexpr /*iterator*/ operator--(int);
(2) (seit C++23)
1) Entspricht --current_ ; return *this;.
Wenn Bound nicht std::unreachable_sentinel_t ist und current_ nicht-positiv ist, ist das Verhalten undefiniert.
2) Entspricht auto tmp = *this; --*this; return tmp;.

std::ranges::repeat_view::iterator::operator+=

constexpr /*iterator*/& operator+=( difference_type n );
(seit C++23)

Entspricht current_ += n; return *this;.

Wenn Bound nicht std::unreachable_sentinel_t ist und current_ + n negativ ist, ist das Verhalten undefiniert.

std::ranges::repeat_view::iterator::operator-=

constexpr /*iterator*/& operator-=( difference_type n );
(seit C++23)

Entspricht current_ -= n; return *this;.

Wenn Bound nicht std::unreachable_sentinel_t ist und current_ - n negativ ist, ist das Verhalten undefiniert.

[bearbeiten] Nicht-Member-Funktionen

operator==, <=>(std::ranges::repeat_view::iterator)

friend constexpr bool operator==
    ( const /*iterator*/& x, const /*iterator*/& y );
(1) (seit C++23)
friend constexpr auto operator<=>
    ( const /*iterator*/& x, const /*iterator*/& y );
(2) (seit C++23)
1) Gibt x.current_ == y.current_ zurück.
2) Gibt x.current_ <=> y.current_ zurück.

Der Operator != wird aus operator== synthetisiert.

Diese Funktionen sind für gewöhnliche unqualifizierte oder qualifizierte Suche nicht sichtbar und können nur durch Argument-abhängige Suche gefunden werden, wenn iterator eine assoziierte Klasse der Argumente ist.

operator+(std::ranges::repeat_view::iterator)

friend constexpr /*iterator*/ operator+
    ( /*iterator*/ i, difference_type n );
(1) (seit C++23)
friend constexpr /*iterator*/ operator+
    ( difference_type n, /*iterator*/ i );
(2) (seit C++23)

Entspricht i += n; return i;.

Diese Funktionen sind für gewöhnliche unqualifizierte oder qualifizierte Suche nicht sichtbar und können nur durch Argument-abhängige Suche gefunden werden, wenn iterator eine assoziierte Klasse der Argumente ist.

operator-(std::ranges::repeat_view::iterator)

friend constexpr /*iterator*/ operator-
    ( /*iterator*/ i, difference_type n );
(1) (seit C++23)
friend constexpr difference_type operator-
    ( const /*iterator*/& x, const /*iterator*/& y );
(2) (seit C++23)
1) Entspricht i -= n; return i;.
2) Gibt static_cast<difference_type>(x.current_ ) -
    static_cast<difference_type>(y.current_ )
zurück.

Diese Funktionen sind für gewöhnliche unqualifizierte oder qualifizierte Suche nicht sichtbar und können nur durch Argument-abhängige Suche gefunden werden, wenn iterator eine assoziierte Klasse der Argumente ist.

[bearbeiten] Hinweise

iterator ist immer ein random_access_iterator.