std::ranges::enumerate_view<V>::end
constexpr auto end() requires (!__simple_view<V>); | (1) | (начиная с C++23) |
constexpr auto end() const requires /*range-with-movable-references*/<const V>; | (2) | (начиная с C++23) |
Возвращает итератор или сентинел, сравнивающийся на равенство с конечным итератором 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_));
Параметры
(нет)
Возвращаемое значение
Итератор итератор или сентинел, представляющий конец enumerate_view, как описано выше.
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Опубликованное поведение | Правильное поведение |
|---|---|---|---|
| LWG 3919 | C++23 |
ranges::distance может вызывать неопределённое поведение для размерных общихбазовых диапазонов, не являющихся диапазонами прямого прохода | для таких диапазонов возвращается тип sentinel |
См. также
| возвращает итератор на начало (открытая функция-член) |
|
|
(C++20) | возвращает сентинел, обозначающий конец диапазона (объект точки настройки) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/enumerate_view/end