Namespaces
Variants

std::ranges::enumerate_view<V>:: iterator <Const>:: iterator

From cppreference.net
Ranges library
Range adaptors
/*iterator*/ ( )
требует std:: default_initializable < ranges:: iterator_t < Base >> = default ;
(1) (начиная с C++23)
constexpr /*iterator*/ ( /*iterator*/ < ! Const > i )

требует Const &&

std:: convertible_to < ranges:: iterator_t < V > , ranges:: iterator_t < Base >> ;
(2) (начиная с C++23)
private :

constexpr explicit /*iterator*/ ( ranges:: iterator_t < Base > current,

difference_type pos ) ;
(3) ( только для демонстрации* )

Создать итератор.

1) Конструктор по умолчанию. Выполняет инициализацию значением базового итератора current_ с помощью ranges:: iterator_t < Base > ( ) и базового индекса pos_ с помощью 0 .
2) Преобразование из /*iterator*/ < false > в /*iterator*/ < true > . Инициализирует current_ значением std :: move ( i. current_ ) и pos_ значением i. pos_ .
3) Приватный конструктор, используемый enumerate_view::begin и enumerate_view::end . Этот конструктор недоступен пользователям. Инициализирует current_ с помощью std :: move ( current ) и pos_ с помощью pos .

Параметры

i - an /*iterator*/ < false >

Пример