Namespaces
Variants

std::ranges::join_with_view<V,Pattern>:: iterator

From cppreference.net
Ranges library
Range adaptors
template < bool Const >
class /*iterator*/
( Nur zur Darstellung* )

ranges:: join_with_view < V, Pattern > :: iterator ist der Typ der Iteratoren, die von begin() und end() des ranges:: join_with_view < V, Pattern > zurückgegeben werden.

Der Zustand eines Iterators dieser Klasse wird so verwaltet, als ob es zwei verschachtelte Iteratoren gäbe:

  • einen äußeren Iterator in den übergeordneten Bereich * parent_

Diese Iterator-Klasse hat die Invariante, dass der innere Iterator immer dereferenzierbar ist, es sei denn, der äußere Iterator ist nicht dereferenzierbar. Wenn ein Iterator konstruiert, inkrementiert oder dekrementiert wird, kann sein äußerer Iterator angepasst werden, um die Invariante zu erhalten.

Inhaltsverzeichnis

Template-Parameter

Const - ob der Iterator ein konstanter Iterator ist

Verschachtelte Typen

Nur zur Darstellung verwendete Typen
Typ Definition
Parent maybe-const  < Const, ranges:: join_with_view < V, Pattern >>
( Nur zur Darstellung verwendeter Membertyp* )
Base maybe-const  < Const, V >
( Nur zur Darstellung verwendeter Membertyp* )
InnerBase ranges:: range_reference_t < Base  >
( Nur zur Darstellung verwendeter Membertyp* )
PatternBase maybe-const  < Const, Pattern >
( Nur zur Darstellung verwendeter Membertyp* )
OuterIter ranges:: iterator_t < Base  >
( Nur zur Darstellung verwendeter Membertyp* )
InnerIter ranges:: iterator_t < InnerBase  >
( Nur zur Darstellung verwendeter Membertyp* )
PatternIter ranges:: iterator_t < PatternBase  >
( Nur zur Darstellung verwendeter Membertyp* )
Iterator-Eigenschaftstypen
Typ Definition
iterator_concept ein Iterator-Tag , siehe unten
iterator_category
(bedingt vorhanden)
ein Iterator-Tag, siehe unten
value_type

std:: common_type_t < ranges:: range_value_t < InnerBase  > ,
ranges:: range_value_t < PatternBase  >>

difference_type

std:: common_type_t < ranges:: range_difference_t < Base  > ,
ranges:: range_difference_t < InnerBase  > ,
ranges:: range_difference_t < PatternBase  >>

Bestimmung des Iterator-Konzepts

iterator_concept ist wie folgt definiert:

Bestimmung der Iteratorkategorie

Gegeben die folgenden Typen:

iterator_category ist genau dann definiert, wenn std:: is_reference_v < InnerBase  > true ist und sowohl Base als auch InnerBase jeweils forward_range modellieren. In diesem Fall ist es wie folgt definiert:

Datenmitglieder

Member Beschreibung
Parent  * parent_ der Zeiger auf das übergeordnete join_with_view
( Nur zur Darstellung verwendetes Mitgliedsobjekt* )
OuterIter outer_it_
(nur vorhanden, wenn Base das Konzept forward_range modelliert)
der äußere Iterator
( Nur zur Darstellung verwendetes Mitgliedsobjekt* )
std:: variant < PatternIter  , InnerIter  > inner_it_ der innere Iterator
( Nur zur Darstellung verwendetes Mitgliedsobjekt* )

Memberfunktionen

Konstruiert einen Iterator
(öffentliche Elementfunktion)
greift auf das Element zu
(öffentliche Elementfunktion)
erhöht oder verringert den zugrundeliegenden Iterator
(öffentliche Elementfunktion)

Nicht-Member-Funktionen

(C++23)
vergleicht die zugrunde liegenden Iteratoren
(Funktion)
(C++23)
wandelt das Ergebnis der Dereferenzierung des zugrunde liegenden Iterators in seinen zugehörigen Rvalue-Referenztyp um
(Funktion)
(C++23)
vertauscht die von zwei zugrunde liegenden Iteratoren referenzierten Objekte
(Funktion)