Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
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) derived static_cast < D & > ( * this ) 。等价于 return * ranges:: begin ( derived ) ; 。若 empty() true (即起始迭代器与哨位比较相等),则行为未定义,即使以相同方式获取的迭代器可解引用。
2) (1) 相同,区别在于 derived static_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)
返回指向容器或数组起始位置的迭代器
(函数模板)
返回指向范围起始位置的迭代器
(定制点对象)
返回指向只读范围起始位置的迭代器
(定制点对象)