Namespaces
Variants

std::ranges::zip_transform_view<F,Views...>::iterator

Aus de.cppreference.net
 
 
Bereiche-Bibliothek
Bereichsadapter
 
 
template< bool Const >
class /*iterator*/;
(seit C++23)
(nur zur Darstellung*)

Der Iteratortyp eines möglicherweise const-qualifizierten zip_transform_view, zurückgegeben von zip_transform_view::begin und in bestimmten Fällen von zip_transform_view::end.

Der Typ /*iterator*/<true> oder /*iterator*/<false> behandelt die zugrundeliegenden Views als const-qualifiziert bzw. nicht-const-qualifiziert.

Mitgliedstypen

Typ Definition
Parent (privat) maybe-const <Const, zip_transform_view>
(Nur zur Veranschaulichung dargestellter Mitgliedstyp*)
Base (privat) maybe-const <Const, InnerView>
(Nur zur Veranschaulichung dargestellter Mitgliedstyp*)
iterator_category
(bedingt vorhanden)

Sei /*POT*/ das Paket von Typen

std::iterator_traits<std::iterator_t<
    /*maybe-const*/<Const, Views>>>::iterator_category...

Falls /*Base*/ das Konzept forward_range modelliert, dann bezeichnet iterator_category Folgendes:

  • std::input_iterator_tag, falls
    std::invoke_result_t</*maybe-const*/<Const, F>&,
        ranges::range_reference_t</*maybe-const*/<Const, Views>>...>
    
keine Referenz ist.
  • Ansonsten
  • std::random_access_iterator_tag, falls
(std::derived_from</*POT*/, std::random_access_iterator_tag> && ...) true ist.
  • Ansonsten std::bidirectional_iterator_tag, falls
(std::derived_from</*POT*/, std::bidirectional_iterator_tag> && ...) true ist.
  • Ansonsten std::forward_iterator_tag, falls
(std::derived_from</*POT*/, std::forward_iterator_tag> && ...) true ist.
  • Ansonsten std::input_iterator_tag.

Nicht vorhanden, falls /*Base*/ das Konzept forward_range nicht modelliert.

iterator_concept /*ziperator*/<Const>::iterator_concept
value_type

Sei /*RREF*/ gleich ranges::range_reference_t<Views>...,
und /*CRREF*/ gleich ranges::range_reference_t<const Views>.... Dann:

  • std::remove_cvref_t<std::invoke_result_t<F&, /*RREF*/>> falls Const gleich false ist,
  • std::remove_cvref_t<std::invoke_result_t<const F&, /*CRREF*/>> ansonsten.
difference_type range::range_difference_t</*Base*/>

Datenelemente

Element Beschreibung
Parent* parent_ (privat) ein Zeiger auf das Elternobjekt
(nur zur Erläuterung dargestelltes Elementobjekt*)
ziperator<Const> inner_ (privat) ein Iterator
(nur zur Erläuterung dargestelltes Elementobjekt*)

Memberfunktionen

Konstruiert einen Iterator
(öffentliche Elementfunktion)
Ermittelt das Ergebnis der Anwendung des aufrufbaren Objekts auf die zugrundeliegenden referenzierten Elemente
(öffentliche Elementfunktion)
Ermittelt das Ergebnis der Anwendung des aufrufbaren Objekts auf die zugrundeliegenden Elemente an gegebenem Offset
(öffentliche Elementfunktion)
Erhöht oder verringert den zugrundeliegenden Iterator
(öffentliche Elementfunktion)

Nicht-Member-Funktionen

vergleicht die zugrundeliegenden Iteratoren
(Funktion)
führt Iteratorarithmetik auf zugrundeliegenden Iteratoren aus
(Funktion)

Beispiel