Namespaces
Variants

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

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rango
 
 
template< bool Const >
class /*iterator*/
(solo exposición*)

ranges::join_with_view<V, Pattern>::iterator es el tipo de los iteradores devueltos por begin() y end() de ranges::join_with_view<V, Pattern>.

El estado de un iterador de esta clase se gestiona como si hubiera dos iteradores anidados:

  • un iterador externo dentro del rango padre *parent_
  • un iterador interno inner_it_ dentro del rango patrón parent_ ->pattern_ o dentro de un rango hijo del rango padre

Esta clase iteradora tiene la invariante de que el iterador interno siempre se puede desreferenciar a menos que el iterador externo no se pueda desreferenciar. Cuando se construye, incrementa o decrementa un iterador, su iterador externo podría ajustarse para mantener la invariante.

Parámetros de plantilla

Const - si el iterador es un iterador constante

Tipos anidados

Tipos solo de exposición
Tipo Definición
Parent maybe-const  < Const, ranges:: join_with_view < V, Pattern >>
( tipo miembro solo de exposición* )
Base maybe-const  < Const, V >
( tipo miembro solo de exposición* )
InnerBase ranges:: range_reference_t < Base  >
( tipo miembro solo de exposición* )
PatternBase maybe-const  < Const, Pattern >
( tipo miembro solo de exposición* )
OuterIter ranges:: iterator_t < Base  >
( tipo miembro solo de exposición* )
InnerIter ranges:: iterator_t < InnerBase  >
( tipo miembro solo de exposición* )
PatternIter ranges:: iterator_t < PatternBase  >
( tipo miembro solo de exposición* )
Tipos de propiedades del iterador
Tipo Definición
iterator_concept una etiqueta de iterador , ver abajo
iterator_category
(condicionalmente presente)
una etiqueta de iterador, ver abajo
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  >>

Determinando el concepto de iterador

iterator_concept se define de la siguiente manera:

Determinación de la categoría del iterador

Dados los siguientes tipos:

iterator_category se define si y solo si std:: is_reference_v < InnerBase  > es true , y Base y InnerBase modelan cada uno forward_range . En este caso, se define de la siguiente manera:

Miembros de datos

Miembro Descripción
Parent  * parent_ el puntero al padre join_with_view
( objeto miembro solo para exposición* )
OuterIter outer_it_
(presente solo si Base modela forward_range )
el iterador externo
( objeto miembro solo para exposición* )
std:: variant < PatternIter  , InnerIter  > inner_it_ el iterador interno
( objeto miembro solo para exposición* )

Funciones miembro

construye un iterador
(función miembro pública)
accede al elemento
(función miembro pública)
avanza o decrementa el iterador subyacente
(función miembro pública)

Funciones no miembro

(C++23)
compara los iteradores subyacentes
(función)
(C++23)
convierte el resultado de desreferenciar el iterador subyacente a su tipo de referencia de valor asociado
(función)
(C++23)
intercambia los objetos apuntados por dos iteradores subyacentes
(función)