Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
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 *

1) derived static_cast < D & > ( * this ) 。等价于 return * ranges:: prev ( ranges:: end ( derived ) ) ; 。若 empty() true (即起始迭代器与哨位比较相等),则行为未定义,即使以相同方式获取的迭代器可解引用。
2) (1) 相同,区别在于 derived static_cast < const D & > ( * this )

目录

返回值

视图中的最后一个元素。

注释

在 C++20 中,标准库中所有派生自 std::ranges::view_interface 的类型均未提供自身的 back() 成员函数。

然而,以下派生类型无法使用默认实现,因为它们既不满足 bidirectional_range 也不满足 common_range 的要求:

继承的 back() 成员函数可用于 std::ranges::empty_view ,但调用该函数始终会导致未定义行为。

示例

参阅

返回指向容器或数组起始位置的反向迭代器
(函数模板)
返回指向范围的反向迭代器
(定制点对象)
返回指向只读范围的反向迭代器
(定制点对象)