std::ranges::transform_view<V,F>::iterator
template< bool Const > class /*iterator*/ | (начиная с C++20) (только для экспозиции*) |
Тип возвращаемого значения transform_view::begin и transform_view::end, если базовое представление является common_range.
Тип /*iterator*/<true> возвращается перегрузками с квалификатором const. Тип /*iterator*/<false> возвращается перегрузками без квалификатора const.
Типы-члены
| Член | Определение |
|---|---|
Parent (закрытый) |
maybe-const <Const,ranges::transform_view<V,F>>(тип-член, используемый только для экспозиции*) |
Base (закрытый) |
maybe-const <Const,V>(тип-член, используемый только для экспозиции*) |
iterator_concept |
|
iterator_category(присутствует только если Base моделируетforward_range) | Пусть MCF будет maybe-const <Const,F>.
В противном случае пусть
|
value_type |
std::remove_cvref_t<std::invoke_result_t<MCF&,ranges::range_reference_t<Base>>>, где MCF обозначает maybe-const <Const,F> |
difference_type | ranges::range_difference_t<Base> |
Переменные-члены
| Член | Описание |
|---|---|
maybe-const <Const,V> current_ (закрытый) | итератор (объект-член, используемый только для экспозиции*) |
ranges::transform_view* parent_ (закрытый) | указатель на родительский объект (объект-член, используемый только для экспозиции*) |
Функции-члены
| создаёт итератор (открытая функция-член) |
|
| возвращает базовый итератор (открытая функция-член) |
|
| получает доступ к преобразованному элементу (открытая функция-член) |
|
| получает доступ к элементу по индексу (открытая функция-член) |
|
| перемещает базовый итератор вперёд или назад (открытая функция-член) |
Функции, не являющиеся членами
|
(C++20) | сравнивает базовые итераторы (функция) |
|
(C++20) | выполняет арифметические операции с итераторами (функция) |
|
(C++20) | получает rvalue-ссылку на преобразованный элемент (функция) |
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были ретроспективно применены к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение согласно опубликованной версии | Исправленное поведение |
|---|---|---|---|
| P2259R1 | C++20 | член iterator_category всегда определён | определён только если Base моделирует forward_range |
| LWG 3555 | C++20 | определение iterator_concept не учитывает const | изменено так, чтобы учитывать const |
| LWG 3798 | C++20 |
iterator_category является только входным, если результат преобразования — rvalue-ссылка | может иметь более сильную категорию |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/transform_view/iterator