Spec-Zone.ru › C++

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

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)

Возвращает итератор или 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, как описано выше.

Пример

См. также

begin
возвращает итератор на начало
(открытая функция-член)
ranges::end
(C++20)
возвращает сентинел, обозначающий конец диапазона
(объект точки настройки)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/chunk_view/end

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API