std::ranges::stride_view<V>::end
constexpr auto end() requires (!/*simple-view*/<V>); | (1) | (начиная с C++23) |
constexpr auto end() const requires ranges::range<const V> | (2) | (начиная с C++23) |
Возвращает итератор или сентинел, представляющий конец stride_view.
Пусть base_ и stride_ — базовые члены данных.
1) Пусть
Const определяется как using Const = false;, а Base — как using Base = V;.
2) Пусть
Const определяется как using Const = true;, а Base — как using Base = const V;.Эквивалентно:
if constexpr (ranges::common_range<Base> &&
ranges::sized_range<Base> &&
ranges::forward_range<Base>)
{
auto missing = (stride_ - ranges::distance(base_) % stride_) % stride_;
return iterator<Const>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<Base> &&
!ranges::bidirectional_range<Base>)
{
return iterator<Const>(this, ranges::end(base_));
}
else
{
return std::default_sentinel;
}
Параметры
нет
Возвращаемое значение
Итератор на элемент, следующий за последним, если базовое представление V удовлетворяет концепту common_range. В противном случае — std::default_sentinel, который сравнивается на равенство с итератором конца.
Примечания
stride_view<V> удовлетворяет концепту common_range, если ему удовлетворяет базовое представление V.
Пример
См. также
| возвращает итератор на начало (открытая функция-член) |
|
|
(C++20) | возвращает сентинел, указывающий на конец диапазона (объект точки настройки) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/stride_view/end