Namespaces
Variants

std::ranges::view_interface<D>::front

来自 zh.cppreference.net
 
 
范围库
范围适配器
 
 
constexpr decltype(auto) front()
    requires ranges::forward_range<D>;
(1) (C++20 起)
constexpr decltype(auto) front() const
    requires ranges::forward_range<const D>;
(2) (C++20 起)

成员函数 front() 的默认实现返回派生类型视图中的第一个元素。元素是按值返回还是按引用返回取决于operator*迭代器类型。

等价于 return *ranges::begin(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 的类型均未提供自身的 front() 成员函数。这些类型几乎全部采用默认实现。

一个显著的例外是 std::ranges::basic_istream_view 。由于它永远不满足 forward_range 的要求,该视图无法使用继承的 front() 方法。

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

示例

参见

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