std::ranges::join_view::begin(3)

NAME
std::ranges::join_view::begin - std::ranges::join_view::begin

Synopsis
   constexpr auto begin(); (1) (since
                        C++20)
   constexpr auto begin() const
       requires ranges::input_range<const V> && (2) (since
                        C++20)
                std::is_reference_v<ranges::range_reference_t<const
   V>>;
   Returns an iterator to the first element of the join_view. Given base_ is the
   underlying view,
   1) Equivalent to return /*iterator*/<true>{*this, ranges::begin(base_)}; if
   __SimpleView<V> is satisfied and ranges::range_reference_t<V> is reference type.
   Otherwise, equivalent to return /*iterator*/<false>{*this, ranges::begin(base_)};.
   2) Equivalent to return /*iterator*/<true>{*this, ranges::begin(base_)};.

Parameters
   (none)

Return value
   Iterator to the first element.

Notes
   When ranges::range_reference_t<V> is not a reference type, that is, deferencing an
   iterator of V returns a prvalue temporary, the join_view is only an input_range, in
   which case only single-pass iteration is supported, and repeated calls to begin()
   may not give meaningful results.

Example
    This section is incomplete
    Reason: no example

See also
   end returns an iterator or a sentinel to the end
   (C++20) (public member function)
   ranges::begin returns an iterator to the beginning of a range
   (C++20) (customization point object)

Category:
     * Todo no example