Namespaces
Variants

std::ranges::elements_view<V,N>::iterator

С ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
 
template< bool Const >
class /*iterator*/;
(только для пояснения*)

Тип возврата elements_view::begin и elements_view::end, когда базовое представление является common_range.

Тип /*iterator*/<true> возвращается константно-квалифицированными перегрузками. Тип /*iterator*/<false> возвращается неконстантно-квалифицированными перегрузками.

Типы членов

Член Определение
Base (приватный) maybe-const <Const, V>
(только для описания тип-член*)
iterator_concept Обозначает:
  • std::random_access_iterator_tag, если Base моделирует random_access_range. Иначе,
  • std::bidirectional_iterator_tag, если Base моделирует bidirectional_range. Иначе,
  • std::forward_iterator_tag, если Base моделирует forward_range. Иначе,
  • std::input_iterator_tag.
iterator_category
(условно присутствует)
Не определён, если Base не моделирует forward_range. Иначе,
  • std::input_iterator_tag, если std::get<N>(*current_) является rvalue. Иначе, пусть C будет тип std::iterator_traits<std::iterator_t<Base>>::iterator_category.
  • std::random_access_iterator_tag, если C моделирует std::derived_from<std::random_access_iterator_tag>. Иначе,
  • C.
value_type std::remove_cvref_t<std::tuple_element_t<N, ranges::range_value_t<Base>>>
difference_type ranges::range_difference_t<Base>

Элементы данных

Член Описание
ranges::iterator_t<Base> current_ (закрытый) итератор на текущий элемент базовой последовательности
(только для пояснения объект-член*)

Функции-члены

создает итератор
(public member function)
возвращает базовый итератор
(public member function)
обращается к N -му элементу кортежа
(public member function)
обращается к элементу по индексу
(public member function)
перемещает или уменьшает базовый итератор
(public member function)

Функции, не являющиеся членами класса

сравнивает базовые итераторы
(функция)
выполняет арифметические операции с итераторами
(функция)

Отчёты о дефектах

Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
P2259R1 C++20 member iterator_category is always defined defined only if Base models forward_range
LWG 3555 C++20 the definition of iterator_concept ignores const made to consider

Смотрите также

(C++20)
возвращаемый тип ranges::transform_view::begin и ranges::transform_view::end , когда базовое представление является common_range
(закрытый шаблон класса-члена)