< cpp‎ | ranges‎ | join view
Ranges library
Range access
Range conversions

Range primitives

Dangling iterator handling
Range concepts

Range factories
Range adaptors
Range generators
Range adaptor objects
Range adaptor closure objects
Helper items
(until C++23)(C++23)

constexpr auto begin();
(1) (since C++20)
constexpr auto begin() const

    requires ranges::input_range<const V> &&

             std::is_reference_v<ranges::range_reference_t<const V>>;
(2) (since C++20)

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_)};.


[edit] Parameters


[edit] Return value

Iterator to the first element.

[edit] 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.

[edit] Example

[edit] See also

returns an iterator or a sentinel to the end
(public member function) [edit]
returns an iterator to the beginning of a range
(customization point object) [edit]