Namensräume
Varianten
Aktionen

std::ranges::basic_istream_view::iterator

Von cppreference.com
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
struct /*iterator*/;
(nur Exposition*)

ranges::basic_istream_view<Val, CharT, Traits>::iterator ist der Typ der Iteratoren, die von begin() von ranges::basic_istream_view<Val, CharT, Traits> zurückgegeben werden.

iterator ist ein input_iterator, erfüllt aber nicht die Anforderungen an LegacyInputIterator und funktioniert daher nicht mit Algorithmen vor C++20.

Inhalt

[bearbeiten] Verschachtelte Typen

Typ Definition
iterator_concept std::input_iterator_tag
difference_type std::ptrdiff_t
value_type Val

[bearbeiten] Datenmember

Mitglied Definition
ranges::basic_istream_view<Val, CharT, Traits> parent_ ein Zeiger auf die Eltern-View
((exposition-only member object*)

[bearbeiten] Member-Funktionen

std::ranges::basic_istream_view::iterator::iterator

/*iterator*/( const /*iterator*/& ) = delete;
(1) (seit C++20)
/*iterator*/( /*iterator*/&& ) = default;
(2) (seit C++20)
constexpr explicit /*iterator*/( basic_istream_view& parent );
(3) (seit C++20)
1) Der Kopierkonstruktor ist gelöscht. Der Iterator ist nicht kopierbar.
2) Der Verschiebekonstruktor ist standardmäßig.
3) Initialisiert parent_ mit std::addressof(parent).

std::ranges::basic_istream_view::iterator::operator=

/*iterator*/& operator=( const /*iterator*/& ) = delete;
(1) (seit C++20)
/*iterator*/& operator=( /*iterator*/&& ) = default;
(2) (seit C++20)
1) Der Zuweisungsoperator für Kopien ist gelöscht. Der Iterator ist nicht kopierbar.
2) Der Zuweisungsoperator für Verschiebungen ist standardmäßig.

std::ranges::basic_istream_view::iterator::operator++

/*iterator*/& operator++();
(1) (seit C++20)
void operator++(int);
(2) (seit C++20)
1) Äquivalent zu *parent_ ->stream_ >> parent_ ->value_.
2) Entspricht ++*this.

std::ranges::basic_istream_view::iterator::operator*

Val& operator*() const;
(seit C++20)

Gibt parent_ ->value_ zurück.

[bearbeiten] Nicht-Member-Funktionen

operator==(std::ranges::basic_istream_view::iterator, std::default_sentinel)

friend bool operator==( const /*iterator*/& x, std::default_sentinel_t );
(seit C++20)

Gibt !*parent_ ->stream_ zurück.

Diese Funktion ist für normale nicht qualifizierte oder qualifizierte Suchen nicht sichtbar und kann nur durch argumentabhängige Suche gefunden werden, wenn std::ranges::basic_istream_view::iterator eine zugehörige Klasse der Argumente ist.

[bearbeiten] 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
P2325R3 C++20 Der Standardkonstruktor wurde als C++20 bereitgestellt
Iteratoren müssen default_initializable sein
entfernt zusammen mit
die Anforderung