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 end() requires (!__SimpleView<V> && !ranges::common_range<V>);
(1) (since C++20)
constexpr auto end() requires (!__SimpleView<V> && ranges::common_range<V>);
(2) (since C++20)
constexpr auto end() const requires ranges::range<const V>;
(3) (since C++20)
constexpr auto end() const requires ranges::common_range<const V>;
(4) (since C++20)

Returns a sentinel or an iterator representing the end of the elements_view.

Let base_ be the underlying view:

1) Equivalent to return /*sentinel*/<false>{ranges::end(base_)};.
2) Equivalent to return /*iterator*/<false>{ranges::end(base_)};.
3) Equivalent to return /*sentinel*/<true>{ranges::end(base_)};.
4) Equivalent to return /*iterator*/<true>{ranges::end(base_)};.


[edit] Parameters


[edit] Return value

1,3) sentinel which compares equal to the end iterator
2,4) iterator to the element following the last element

[edit] Notes

end() returns an iterator if and only if the underlying view is a common_range: elements_view<V,F> models common_range whenever V does.

[edit] Example

[edit] See also

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