std::ranges::view_interface<D>::front
From cppreference.com
< cpp | ranges | view interface
C++
Ranges library
|
Range primitives | |||||||
|
Range concepts | |||||||||||||||||||
|
Range factories | |||||||||
|
Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Helper items | |||||||||||||||||
|
std::ranges::view_interface
Member functions | ||||
(C++23)
|
||||
(C++23)
|
||||
front | ||||
constexpr decltype(
auto
) front(
)
requires ranges::forward_range <D> ; |
(1) | (since C++20) |
constexpr decltype(
auto
) front(
)
const
requires ranges::forward_range < const D> ; |
(2) | (since C++20) |
The default implementation of front()
member function returns the first element in the view of the derived type. Whether the element is returned by value or by reference depends on the operator*
1) Let
derived
be
static_cast
<D&
>
(
*this)
. Equivalent to
return
*
ranges::begin
(derived)
;
. The behavior is undefined if empty()
is true
2) Same as (1), except that
derived
is
static_cast
<
const D&
>
(
*this)
Parameters
(none)
Return value
The first element in the view.
Notes
In C++20, no type derived from std::ranges::view_interface in the standard library provides their own front()
A notable exception is std::ranges::basic_istream_view. For it never satisfies forward_range
, the view cannot use the inherited front()
The inherited front()
member function is available for std::ranges::empty_view, but a call to it always results in undefined behavior.
Example
This section is incomplete Reason: no example |
See also
(C++11)(C++14)
|
returns an iterator to the beginning of a container or array (function template) |
(C++20)
|
returns an iterator to the beginning of a range (customization point object) |
(C++20)
|
returns an iterator to the beginning of a read-only range (customization point object) |