Spec-Zone.ru › C++

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.

Пример

См. также

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

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

Spec-Zone.ru

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