Namespaces
Variants

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

Aus de.cppreference.net
 
 
Ranges-Bibliothek
Range-Adaptoren
 
 
template< bool Const >
class /*iterator*/
(*nur zur Veranschaulichung*) ist der Typ der Iteratoren, die von

ranges::join_with_view<V, Pattern>::iterator und begin() von end() zurückgegeben werden. ranges::join_with_view<V, Pattern>Der Zustand eines Iterators dieser Klasse wird so verwaltet, als ob es zwei verschachtelte Iteratoren gäbe:

einen

  • äußeren Iterator in den Elternbereich Falls *parent_
  • inneren Iterator in den Musterbereich inner_it_ oder in einen Kindbereich des Elternbereichsparent_ ->pattern_Diese Iterator-Klasse hat die Invariante, dass der innere Iterator stets 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 wahren.

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)