std::ranges::transform_view<V,F>::iterator
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_concept | std::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 |
value_type | std::remove_cvref_t<std::invoke_result_t<F&, ranges::range_reference_t<Base>>> |
difference_type | ranges::range_difference_t<Base> |
[editar]Funciones miembro
(C++20) | 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) | |
(C++20) | 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. |