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

来自cppreference.com
 
 
范围库
范围适配器
 
 
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*

1)derivedstatic_cast<D&>(*this)。等价于 return *ranges::begin(derived);。若 empty()true(即起始迭代器比较等于哨位)则行为未定义,即使以同样方式获得的迭代器可解引用也是如此。
2)(1),但 derivedstatic_cast<const D&>(*this)

参数

(无)

返回值

视图中的首个元素。

注解

C++20 中,标准库派生自 std::ranges::view_interface 的类型都不提供其自身的 front 成员函数。几乎所有这些类型都使用默认实现。

一个值得注意的例外是 std::ranges::basic_istream_view。由于它决不满足 forward_range,该视图无法使用继承的 front

继承的 front 成员函数对 std::ranges::empty_view 可用,但对它的调用始终导致未定义行为。

示例

参阅

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