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.
Tipos miembro
| Tipo miembro | Definición |
Parent (private)
|
const ranges::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>
|
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) |
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) |
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. |