std::ranges::view_interface<D>::back
来自 zh.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)
|
如果 |
(直至 C++26) |
|
如果 |
(始自 C++26) |
返回值
视图中的最后一个元素。
注释
在 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)
|
返回指向只读范围的反向迭代器
(定制点对象) |