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 /*sentinel*/<false> end();
(1) (since C++20)
constexpr /*iterator*/<false> end() requires ranges::common_range<V>;
(2) (since C++20)
constexpr /*sentinel*/<true> end() const

  requires ranges::range<const V> &&

           std::regular_invocable<const F&, ranges::range_reference_t<const V>>;
(3) (since C++20)
constexpr /*iterator*/<true> end() const

  requires ranges::common_range<const V> &&

           std::regular_invocable<const F&, ranges::range_reference_t<const V>>;
(4) (since C++20)

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

Let base_ be the underlying view:

1) Equivalent to return /*sentinel*/<false>{ranges::end(base_)};.
2) Equivalent to return /*iterator*/<false>{*this, ranges::end(base_)};.
3) Equivalent to return /*sentinel*/<true>{ranges::end(base_)};.
4) Equivalent to return /*iterator*/<true>{*this, 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: transform_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]