Namespaces
Variants

std::ranges::enumerate_view<V>::end

От ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
 
constexpr auto end() requires (!__simple_view<V>);
(1) (начиная с C++23)
constexpr auto end() const requires /*range-with-movable-references*/<const V>;
(2) (начиная с C++23)

Возвращает iterator или sentinel, который при сравнении равен конечному итератору enumerate_view.

Пусть base_ обозначает базовое представление.

1) Эквивалентно:
if constexpr (ranges::forward_range<V> and 
              ranges::common_range<V>  and 
              ranges::sized_range<V>)
    return /*iterator*/<false>(ranges::end(base_), ranges::distance(base_));
else
    return /*sentinel*/<false>(ranges::end(base_));
2) Эквивалентно:
if constexpr (ranges::forward_range<const V> and 
              ranges::common_range<const V>  and 
              ranges::sized_range<const V>)
    return /*iterator*/<true>(ranges::end(base_), ranges::distance(base_));
else
    return /*sentinel*/<true>(ranges::end(base_));

Параметры

(нет)

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

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

Пример

Отчеты о дефектах

Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 3919 C++23 ranges::distance может вызывать неопределенное поведение для sized common
non-forward underlying ranges
для таких диапазонов возвращается тип sentinel

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

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