Namespaces
Variants

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

С ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
std::ranges::chunk_view
Функции-члены
Классы для input_ranges
Правила вывода
outer-iterator
outer-iterator::value_type
inner-iterator
 
/*iterator*/() = default;
(1) (начиная с C++23)
constexpr /*iterator*/( /*iterator*/<!Const> i )
    requires
        Const and
        std::convertible_to<ranges::iterator_t<V>, ranges::iterator_t<Base>> and
        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) Конструктор по умолчанию. Инициализирует значением базовые элементы данных:
  • current_ с ranges::iterator_t<Base>(),
  • end_ с ranges::sentinel_t<Base>(),
  • n_ с 0,
  • missing_ с 0.
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_ ) и фактическим размером текущего чанка

Пример