Espacios de nombres
Variantes
Acciones

std::ranges::transform_view<V,F>::iterator

De cppreference.com
 
 
Biblioteca de rangos
Adaptadores de rangos
 
 
template<bool Const >
class/*iterator*/
(desde C++20)

El tipo de retorno de transform_view::begin, y de transform_view::end cuando la vista subyacente es un common_range.

El tipo /*iterator*/<true> se devuelve por las sobrecargas calificadas const. El tipo /*iterator*/<false> se devuelve por las sobrecargas no calificadas const.

El nombre de esta plantilla de clase (que se muestra aquí como iterator) no está especificado.

Las implementaciones típicas mantienen dos datos miembro: un iterador (posiblemente calificado const) en V, y un puntero a la vista transform_view padre.

Contenido

[editar]Tipos miembro

Tipo miembro Definición
Parent(private)constranges::transform_view<V, F> si Const es true, de lo contrario ranges::transform_view<V, F>. El nombre es solo de exposición.
Base(private)const V si Const es true, de lo contrario V. El nombre es solo de exposición.
iterator_conceptstd::random_access_iterator_tag si Base modela random_access_range,
std::bidirectional_iterator_tag si Base modela bidirectional_range,
std::forward_iterator_tag si Base modela forward_range,
std::input_iterator_tag de lo contrario.
iterator_category No está definido si Base no modela forward_range.
De lo contrario, si std::invoke_result_t<F&, ranges::range_reference_t<Base>> no es una referencia l-valor, std::input_iterator_tag.

De otro modo, sea Cstd::iterator_traits<ranges::iterator_t<Base>>::iterator_category. Si C es std::contiguous_iterator_tag, el tipo es std::random_access_iterator_tag; de lo contrario, el tipo es C.

value_typestd::remove_cvref_t<std::invoke_result_t<F&, ranges::range_reference_t<Base>>>
difference_typeranges::range_difference_t<Base>

[editar]Funciones miembro

Construye un iterador.
(función miembro pública)
(C++20)
Devuelve el iterador subyacente.
(función miembro pública)
(C++20)
Accede al elemento transformado.
(función miembro pública)
(C++20)
Accede a un elemento por su índice.
(función miembro pública)
Avanza o decrementa el iterador subyacente.
(función miembro pública)

[editar]Funciones no miembro

Compara los iteradores subyacentes.
(función)
Realiza aritmética de iteradores.
(función)
(C++20)
Obtiene una referencia r-valor al elemento transformado.
(función)

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
P2259R1 C++20 El miembro iterator_category siempre está definido. Definido solo si Base modela forward_range.
LWG 3555 C++20 La definición de iterator_concept ignora const Se hizo que lo considerara.
close