Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
template < bool Const >
class /*iterator*/
( solo para 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 hacia el rango padre * parent_

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

Contenidos

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)