Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
std::ranges::chunk_view
Member functions
Classes for input_range s
Deduction guides
outer-iterator
outer-iterator ::value_type
inner-iterator
/*iterator*/ ( ) = default ;
(1) (начиная с C++23)
constexpr /*iterator*/ ( /*iterator*/ < ! Const > i )

требует
Const и
std:: convertible_to < ranges:: iterator_t < V > , ranges:: iterator_t < Base >> и

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

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

ranges:: range_difference_t < Base > missing = 0 ) ;
(3) ( только для демонстрации* )

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

1) Конструктор по умолчанию. Выполняет value-инициализацию базовых членов данных :
2) Преобразование из /*iterator*/ < false > в /*iterator*/ < true > . Инициализирует базовые члены данных :
  • current_ с помощью std :: move ( i. current_ ) ,
  • end_ с помощью std :: move ( i. end_ ) ,
  • n_ с помощью i. n_ ,
  • missing_ с помощью i. missing_ .
3) Приватный конструктор, используемый ranges::chunk_view::begin и ranges::chunk_view::end . Этот конструктор недоступен для пользователей. Инициализирует базовые члены данных :
  • current_ значением current ,
  • end_ значением ranges:: end ( parent - > base_ ) ,
  • n_ значением parent - > n_ ,
  • missing_ значением missing .

Параметры

i - an /*iterator*/ < false >
parent - указатель на владеющий chunk_view
current - итератор на начало текущего чанка
missing - разница между ожидаемым ( n_ ) и фактическим размером текущего чанка

Пример