Spec-Zone.ru › C++

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

template< bool Const >
class /*iterator*/;
(только для примера*)

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

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

Типы членов

Тип члена Определение
Base (private) const V, если Const равно true, в противном случае 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>

Члены-данные

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

Члены-функции

(конструктор)
(C++20)
создаёт итератор
(общедоступная функция-член)
base
(C++20)
возвращает базовый итератор
(общедоступная функция-член)
operator*
(C++20)
обращается к N-му элементу кортежа
(общедоступная функция-член)
operator[]
(C++20)
обращение к элементу по индексу
(общедоступная функция-член)
operator++operator++(int)operator--operator--(int)operator+=operator-=
(C++20)
перемещение базового итератора вперёд или назад
(общедоступная функция-член)

Функции без имени

operator==operator<operator>operator<=operator>=operator<=>
(C++20)
сравнение базовых итераторов
(функция)
operator+operator-
(C++20)
арифметические операции с итераторами
(функция)

Отчёты об ошибках

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

DR Применено к Поведение, как опубликовано Правильное поведение
P2259R1 C++20 член iterator_category всегда определён определён только если Base соответствует forward_range
LWG 3555 C++20 определение iterator_concept игнорирует const исправлено

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/elements_view/iterator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API