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) 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_ (private) итератор текущего элемента базовой последовательности
(объект-член, используемый только для иллюстрации*)

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

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

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

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

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

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

Отчёт об ошибке Применён к Опубликованное поведение Корректное поведение
P2259R1 C++20 член iterator_category всегда определён определён только если Base удовлетворяет требованиям forward_range
LWG 3555 C++20 определение iterator_concept не учитывает const изменено так, чтобы учитывать 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/cpp/ranges/elements_view/iterator

Spec-Zone.ru

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