Namespaces
Variants

std::ranges::chunk_view<V>::end

С ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
std::ranges::chunk_view
Функции-элементы
Классы для input_ranges
Руководства по выводу
outer-iterator
outer-iterator::value_type
inner-iterator
 
V применим только для input_range
constexpr std::default_sentinel_t end() const noexcept;
(1) (начиная с C++23)
V применим для forward_range
constexpr auto end() requires (!__simple_view<V>);
(2) (начиная с C++23)
constexpr auto end() const requires ranges::forward_range<const V>;
(3) (начиная с C++23)

Возвращает iterator или std::default_sentinel, который сравнивается равным с конечным итератором представления.chunk_view

1) Доступна только если V моделирует input_range. Эквивалентно: return std::default_sentinel.
2,3) Доступна если V моделирует forward_range. Пусть base_ обозначает нижележащее адаптированное представление, n_ обозначает сохранённый размер чанка, а iterator обозначает вложенный класс итератора.
2) Эквивалентно
if constexpr (ranges::common_range<V> && ranges::sized_range<V>)
{
    auto missing = (n_ - ranges::distance(base_) % n_) % n_;
    return iterator<false>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<V> && !ranges::bidirectional_range<V>)
    return iterator<false>(this, ranges::end(base_));
else
    return std::default_sentinel;
3) Эквивалентно
if constexpr (ranges::common_range<const V> && ranges::sized_range<const V>)
{
    auto missing = (n_ - ranges::distance(base_) % n_) % n_;
    return iterator<true>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<const V> && !ranges::bidirectional_range<const V>)
    return iterator<true>(this, ranges::end(base_));
else
    return std::default_sentinel;

Возвращаемое значение

Итератор или страж, представляющий конец chunk_view , как описано выше.

Пример

Смотрите также

возвращает итератор на начало
(публичная функция-член)
возвращает страж, указывающий на конец диапазона
(объект точки кастомизации)