std::ranges::subrange::begin(3)

NAME
std::ranges::subrange::begin - std::ranges::subrange::begin

Synopsis
   constexpr I begin() const requires std::copyable<I>; (1) (since C++20)
   [[nodiscard]] constexpr I begin() requires (!std::copyable<I>); (2) (since C++20)
   Obtains the iterator to the first element of the subrange, or the end iterator if
   the view is empty.
   range-begin-end.svg
   1) Returns a copy of the stored iterator if the iterator type is copyable.
   2) Returns an iterator move-constructed from the stored iterator if the iterator
   type is not copyable.

Parameters
   (none)

Return value
   1) An iterator copy-constructed from the stored iterator.
   2) An iterator move-constructed from the stored iterator.

Notes
   A call to (2) may leave the stored iterator in a valid but unspecified state,
   depending on the behavior of the move constructor of I.

Example
    This section is incomplete
    Reason: no example

See also
   end obtains the sentinel
   (C++20) (public member function)
   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)

Category:
     * Todo no example