Namespaces
Variants

std::ranges::view_interface<D>::back

Со ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
 
constexpr decltype(auto) back()
    requires ranges::bidirectional_range<D> && ranges::common_range<D>;
(1) (начиная с C++20)
constexpr decltype(auto) back() const
    requires ranges::bidirectional_range<const D> && ranges::common_range<const D>;
(2) (начиная с C++20)

Реализация по умолчанию функции-элемента back() возвращает последний элемент представления производного типа. Возвращается ли элемент по значению или по ссылке, зависит от operator* типа итератора.

Эквивалентно return *ranges::prev(ranges::end(derived));, где derived является:

1) static_cast<D&>(*this)
2) static_cast<const D&>(*this)


Если empty() равно true, поведение не определено.

(до C++26)

Если empty() равно true:

(начиная с C++26)

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

Последний элемент в представлении.

Примечания

В C++20 ни один тип, производный от std::ranges::view_interface в стандартной библиотеке, не предоставляет собственную функцию-член back() .

Однако следующие производные типы не могут использовать реализации по умолчанию, так как они никогда не удовлетворяют ни bidirectional_range , ни common_range :

Унаследованная back() функция-член доступна для std::ranges::empty_view , но вызов этой функции всегда приводит к неопределённому поведению.

Пример

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

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