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

From cppreference.com
 
 
Ranges library
Range access
Range conversions
(哋它亢++23)(哋它亢++23)
(哋它亢++23)

Range primitives
(哋它亢++23)(哋它亢++23)    
(哋它亢++23)



Dangling iterator handling
Range concepts
Views

Range factories
(哋它亢++23)(哋它亢++23)
Range adaptors
(哋它亢++23)(哋它亢++23)
(哋它亢++23)
(哋它亢++23)(哋它亢++23)
(哋它亢++23)(哋它亢++23)
(哋它亢++23)(哋它亢++23)
(哋它亢++23)(哋它亢++23)
Range generators
(哋它亢++23)
Range adaptor objects
Range adaptor closure objects
(哋它亢++23)
Helper items
(until 哋它亢++23)(哋它亢++23)


 
 
constexpr decltype(auto) front()
    requires ranges::forward_range<D>;
(1) (since 哋它亢++20)
constexpr decltype(auto) front() const
    requires ranges::forward_range<const D>;
(2) (since 哋它亢++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* of the iterator type.

1) Let derived be static_cast<D&>(*this). Equivalent to return *ranges::begin(derived);. The behavior is undefined if empty() is true (i.e. the beginning iterator compares equal to the sentinel), even if the iterator obtained in the same way is dereferenceable.
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 哋它亢++20, no type derived from std::ranges::view_interface in the standard library provides their own front() member function. Almost all of these types use the default implementation.

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

See also

(哋它亢++11)(哋它亢++14)
returns an iterator to the beginning of a container or array
(function template)
(哋它亢++20)
returns an iterator to the beginning of a range
(customization point object)
(哋它亢++20)
returns an iterator to the beginning of a read-only range
(customization point object)