std::ranges::enumerate_view::end(3)

NAME
std::ranges::enumerate_view::end - std::ranges::enumerate_view::end

Synopsis
   constexpr auto end() requires (!__simple_view<V>); (1) (since C++23)
   constexpr auto end() const requires (2) (since C++23)
   /*range-with-movable-references*/<const V>;
   Returns an iterator or a sentinel that compares equal to the end iterator of the
   enumerate_view.
   Let base_ denote the underlying view.
   1) Equivalent to:
 if constexpr (ranges::forward_range<V> and
               ranges::common_range<V> and
               ranges::sized_range<V>)
     return /*iterator*/<false>(ranges::end(base_), ranges::distance(base_));
 else
     return /*sentinel*/<false>(ranges::end(base_));
   2) Equivalent to:
 if constexpr (ranges::forward_range<const V> and
               ranges::common_range<const V> and
               ranges::sized_range<const V>)
     return /*iterator*/<true>(ranges::end(base_), ranges::distance(base_));
 else
     return /*sentinel*/<true>(ranges::end(base_));

Parameters
   (none)

Return value
   An iterator or a sentinel representing the end of the enumerate_view, as described
   above.

Example
    This section is incomplete
    Reason: no example
   Defect reports
   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.
      DR Applied to Behavior as published Correct behavior
                       ranges::distance may invoke UB for sentinel type is returned
   LWG 3919 C++23 sized common for such ranges
                       non-forward underlying ranges

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

Category:
     * Todo no example