Namespaces
Variants

std::ranges::transform_view<V,F>::iterator

Von de.cppreference.net
 
 
Ranges-Bibliothek
Range-Adaptoren
 
 
template< bool Const >
class /*iterator*/
(seit C++20)
(nur zur Veranschaulichung*)

Der Rückgabetyp von transform_view::begin, und von transform_view::end wenn der zugrundeliegende View ein common_range ist.

Der Typ /*iterator*/<true> wird von den const-qualifizierten Überladungen zurückgegeben. Der Typ /*iterator*/<false> wird von den nicht-const-qualifizierten Überladungen zurückgegeben.

Elementtypen

Element Definition
Parent (privat) maybe-const <Const, ranges::transform_view<V, F>>
(nur zur Erläuterung dienender Elementtyp*)
Base (privat) maybe-const <Const, V>
(nur zur Erläuterung dienender Elementtyp*)
iterator_concept
  • std::random_access_iterator_tag, falls Base die Anforderungen von random_access_range erfüllt,
  • std::bidirectional_iterator_tag, falls Base die Anforderungen von bidirectional_range erfüllt,
  • std::forward_iterator_tag, falls Base die Anforderungen von forward_range erfüllt,
  • std::input_iterator_tag andernfalls.
iterator_category
(nur vorhanden, falls Base die Anforderungen von
forward_range erfüllt)
Sei MCF gleich maybe-const <Const, F>.
  • std::input_iterator_tag, falls std::invoke_result_t<MCF&, ranges::range_reference_t<Base>> keine Referenz ist.

Andernfalls sei C gleich std::iterator_traits<ranges::iterator_t<Base>>::iterator_category.

  • std::random_access_iterator_tag, falls C std::contiguous_iterator_tag ist;
  • C, andernfalls.
value_type std::remove_cvref_t<std::invoke_result_t<MCF&, ranges::range_reference_t<Base>>>, wobei MCF für maybe-const <Const, F>
difference_type ranges::range_difference_t<Base>
steht

Datenelemente

Element Beschreibung
maybe-const <Const, V> current_ (privat) ein Iterator
(nur zur Erläuterung dienendes Elementobjekt*)
ranges::transform_view* parent_ (privat) ein Zeiger auf das übergeordnete Objekt
(nur zur Erläuterung dienendes Elementobjekt*)

Memberfunktionen

Konstruiert einen Iterator
(öffentliche Elementfunktion)
gibt den zugrundeliegenden Iterator zurück
(öffentliche Elementfunktion)
greift auf das transformierte Element zu
(öffentliche Elementfunktion)
greift auf ein Element per Index zu
(öffentliche Elementfunktion)
bewegt den zugrundeliegenden Iterator vorwärts oder rückwärts
(öffentliche Elementfunktion)

Nicht-Member-Funktionen

vergleicht die zugrundeliegenden Iteratoren
(Funktion)
führt Iterator-Arithmetik durch
(Funktion)
(C++20)
erhält eine Rvalue-Referenz auf das transformierte Element
(Funktion)

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
P2259R1 C++20 member iterator_category ist immer definiert nur definiert wenn Base das Konzept forward_range modelliert
LWG 3555 C++20 die Definition von iterator_concept ignoriert const wurde angepasst um const zu berücksichtigen
LWG 3798 C++20 iterator_category ist input-only wenn Transformationsergebnis Rvalue-Referenz ist kann eine stärkere Kategorie haben