Namespaces
Variants

std::ranges::zip_transform_view<F,Views...>:: iterator

From cppreference.net
Ranges library
Range adaptors
template < bool Const >
class /*iterator*/ ;
(начиная с C++23)
( только для демонстрации* )

Тип итератора для возможно const-квалифицированного zip_transform_view , возвращаемый zip_transform_view::begin и в некоторых случаях zip_transform_view::end .

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

Содержание

Типы членов

**Примечание:** В данном фрагменте весь текст, подлежащий переводу, находится внутри HTML-тегов и комментариев C++, которые согласно инструкциям не должны переводиться. Единственный текст "Const" является C++ специфическим термином и также не подлежит переводу.
Тип члена Определение
Parent (private) zip_transform_view если Const равен false , const zip_transform_view в противном случае.
( демонстрационный тип-член* )
Base (private) InnerView если Const равно false , const InnerView в противном случае.
( демонстрационный тип-член* )
iterator_category
(условно присутствует)

Пусть /*maybe-const*/ < Const, F > & обозначает const F & если Const равно true , F & в противном случае.
Пусть /*maybe-const*/ < Const, Views > обозначает const Views если Const равно true , Views в противном случае.

Пусть /*POT*/ обозначает пакет типов std:: iterator_traits < std :: iterator_t <
/*maybe-const*/ < Const, Views >>> :: iterator_category ...

Если /*Base*/ моделирует forward_range , тогда iterator_category обозначает:

не является ссылкой.
  • В противном случае,
( std:: derived_from < /*POT*/ , std:: random_access_iterator_tag > && ... ) равно true .
( std:: derived_from < /*POT*/ , std:: bidirectional_iterator_tag > && ... ) равно true .
( std:: derived_from < /*POT*/ , std:: forward_iterator_tag > && ... ) равно true .

Отсутствует если /*Base*/ не моделирует forward_range .

iterator_concept /*ziperator*/ < Const > :: iterator_concept
value_type

Пусть /*RREF*/ будет ranges:: range_reference_t < Views > ... ,
и /*CRREF*/ будет ranges:: range_reference_t < const Views > ... . Тогда:

difference_type range :: range_difference_t < /*Base*/ >

Члены данных

Объект-член Определение
parent_ (private) Указатель Parent* на родительский объект
( объект-член только для демонстрации* )
inner_ (private) Итератор типа ziperator<Const> .
( тип-член только для демонстрации* )

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

создает итератор
(public member function)
получает результат применения вызываемого объекта к базовым элементам, на которые указывают итераторы
(public member function)
получает результат применения вызываемого объекта к базовым элементам с заданным смещением
(public member function)
перемещает или уменьшает базовый итератор
(public member function)

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

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

Пример