std::ranges...face::front(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

✨ NAME ✨

Okay so this is the manual page for std::ranges::view_interface::front β€” yes, the name and the title are literally the same, no cap. It comes from the C++ Standard Libary (spelled exactly like that in the header, bestie 😭).

std::ranges::view_interface::front β€” std::ranges::view_interface::front


🌸 Synopsis 🌸

Here’s the signature situation, and yes the requires clauses are doing main-character work:

constexpr decltype(auto) front()             (1) (since C++20)
    requires ranges::forward_range<D>;
constexpr decltype(auto) front() const       (2) (since C++20)
    requires ranges::forward_range<const D>;

The default implementation of the 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) β€” literally no parameters, bestie. Not a single one.


πŸ’… Return value πŸ’…

The first element in the view. That’s it. Iconic.


🧚 Notes 🧚

In C++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. So like… available, but not cute. πŸ™ˆ


🌈 Example 🌈

This section is incomplete.

Reason: no example

Not me showing up to the example section and it’s empty πŸ˜­πŸ’€


πŸ”₯ See also πŸ”₯

  • begin
  • cbegin β€” returns an iterator to the beginning of a container or array (C++11) (function template) (C++14)
  • ranges::begin β€” returns an iterator to the beginning of a range (C++20) (customization point object)
  • ranges::cbegin β€” returns an iterator to the beginning of a read-only range (C++20) (customization point object)

πŸ‘‘ Category πŸ‘‘

  • Todo no example

Catch you later, bestie πŸ«ΆπŸ’– this cutie came from http://cppreference.com, version/date 2024.06.10, page std::ranges...face::front(3). Periodt. βœ¨πŸŽ€

πŸ“¦ where this page comes from