From cppreference.com
constexprautobegin(); (1) (since C++20)constexprautobegin()constrequiresranges::input_range<constV>&&std::is_reference_v<ranges::range_reference_t<constV>>; (2) (since C++20)Returns an
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 /*simple-view*/<V> is satisfied and ranges::range_reference_t<V> is reference type. Otherwise,
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
, in which case only single-pass iteration is supported, and repeated calls to begin() may not give meaningful results.
Example
See also
returns an iterator or a sentinel to the end
(public member function)
(C++20)
returns an iterator to the beginning of a range
(customization point object)