Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
template < bool Const >
class /*iterator*/
( exposition uniquement* )

ranges:: join_with_view < V, Pattern > :: iterator est le type des itérateurs retournés par begin() et end() de ranges:: join_with_view < V, Pattern > .

L'état d'un itérateur de cette classe est géré comme s'il y avait deux itérateurs imbriqués :

  • un itérateur externe dans la plage parente * parent_

Cette classe d'itérateur a pour invariant que l'itérateur interne est toujours déréférençable sauf si l'itérateur externe n'est pas déréférençable. Lorsqu'un itérateur est construit, incrémenté ou décrémenté, son itérateur externe peut être ajusté pour maintenir l'invariant.

Table des matières

Paramètres du modèle

Const - indique si l'itérateur est un itérateur constant

Types imbriqués

Types d'exposition uniquement
Type Définition
Parent maybe-const  < Const, ranges:: join_with_view < V, Pattern >>
( type membre d'exposition uniquement* )
Base maybe-const  < Const, V >
( type membre d'exposition uniquement* )
InnerBase ranges:: range_reference_t < Base  >
( type membre d'exposition uniquement* )
PatternBase maybe-const  < Const, Pattern >
( type membre d'exposition uniquement* )
OuterIter ranges:: iterator_t < Base  >
( type membre d'exposition uniquement* )
InnerIter ranges:: iterator_t < InnerBase  >
( type membre d'exposition uniquement* )
PatternIter ranges:: iterator_t < PatternBase  >
( type membre d'exposition uniquement* )
Types de propriétés d'itérateur
Type Définition
iterator_concept un tag d'itérateur , voir ci-dessous
iterator_category
(conditionnellement présent)
un tag d'itérateur, voir ci-dessous
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  >>

Détermination du concept d'itérateur

iterator_concept est défini comme suit :

Détermination de la catégorie d'itérateur

Étant donné les types suivants :

iterator_category est défini si et seulement si std:: is_reference_v < InnerBase  > est true , et Base et InnerBase modélisent chacun forward_range . Dans ce cas, il est défini comme suit :

Membres de données

Membre Description
Parent  * parent_ le pointeur vers le parent join_with_view
( objet membre d'exposition uniquement* )
OuterIter outer_it_
(présent seulement si Base modélise forward_range )
l'itérateur externe
( objet membre d'exposition uniquement* )
std:: variant < PatternIter  , InnerIter  > inner_it_ l'itérateur interne
( objet membre d'exposition uniquement* )

Fonctions membres

construit un itérateur
(fonction membre publique)
accède à l'élément
(fonction membre publique)
avance ou décrémente l'itérateur sous-jacent
(fonction membre publique)

Fonctions non membres

(C++23)
compare les itérateurs sous-jacents
(fonction)
(C++23)
convertit le résultat du déréférencement de l'itérateur sous-jacent en son type de référence rvalue associé
(fonction)
(C++23)
échange les objets pointés par deux itérateurs sous-jacents
(fonction)