std::ranges::view_interface<D>:: back
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
| Member functions | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
back
|
||||
|
constexpr
decltype
(
auto
)
back
(
)
требует ranges:: bidirectional_range < D > && ranges:: common_range < D > ; |
(1) | (начиная с C++20) |
|
constexpr
decltype
(
auto
)
back
(
)
const
требует ranges:: bidirectional_range < const D > && ranges:: common_range < const D > ; |
(2) | (начиная с C++20) |
Стандартная реализация функции-члена
back()
возвращает последний элемент в представлении производного типа. Возвращается ли элемент по значению или по ссылке, зависит от
operator
*
типа итератора.
derived
будет
static_cast
<
D
&
>
(
*
this
)
. Эквивалентно
return
*
ranges::
prev
(
ranges::
end
(
derived
)
)
;
. Поведение не определено, если
empty()
равно
true
(т.е. начальный итератор сравнивается с сентинелом), даже если итератор, полученный таким же способом, разыменовываем.
derived
является
static_cast
<
const
D
&
>
(
*
this
)
.
Содержание |
Возвращаемое значение
Последний элемент в представлении.
Примечания
В C++20 ни один тип, производный от
std::ranges::view_interface
в стандартной библиотеке, не предоставляет собственную функцию-член
back()
.
Однако следующие производные типы не могут использовать реализации по умолчанию, так как они никогда не удовлетворяют ни
bidirectional_range
, ни
common_range
:
- std::ranges::basic_istream_view
- std::ranges::lazy_split_view
- std::ranges::split_view
- std::ranges::take_while_view
Унаследованная
back()
функция-член доступна для
std::ranges::empty_view
, но вызов этой функции всегда приводит к неопределённому поведению.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
(C++14)
|
возвращает обратный итератор на начало контейнера или массива
(шаблон функции) |
|
(C++20)
|
возвращает обратный итератор на диапазон
(объект точки настройки) |
|
(C++20)
|
возвращает обратный итератор на диапазон только для чтения
(объект точки настройки) |