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.
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, как описано выше.
Пример
См. также
|
(C++23) |
возвращает итератор к началу (общедоступный член-функция) |
|
(C++20) |
возвращает ограничивающий итератор, указывающий на конец диапазона (объект точки настройки) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/chunk_view/end