std::ranges::zip_view::end(3)

NAME
std::ranges::zip_view::end - std::ranges::zip_view::end

Synopsis
   constexpr auto end() (1) (since C++23)
       requires (!(/*simple-view*/<Views> && ...);
   constexpr auto end() const (2) (since C++23)
       requires (ranges::range<const Views> && ...);
   template< class... Rs >
     concept /*zip-is-common*/ =
       (sizeof...(Rs) == 1 && (ranges::common_range<Rs> && ...))
       ||
       (!(ranges::bidirectional_range<Rs> && ...) && (3) (exposition only*)
   (ranges::common_range<Rs> && ...))
       ||
       ((ranges::random_access_range<Rs> && ...) &&
   (ranges::sized_range<Rs> && ...));
   Returns a sentinel or an iterator that compares equal to the end iterator of the
   std::zip_view.
   Let views_ denote the underlying tuple of views.
   1) Equivalent to:
     * return /*sentinel*/<false>(/*tuple-transform*/(ranges::end, views_));,
   if /*zip-is-common*/<Views...> evaluates to false. Otherwise,
     * return begin() + std::iter_difference_t</*iterator*/<false>>(size());,
   if (ranges::random_access_range<Views> && ...) evaluates to true. Otherwise,
     * return /*iterator*/<false>(/*tuple-transform*/(ranges::end, views_));.
   2) Equivalent to:
     * return /*sentinel*/<true>(/*tuple-transform*/(ranges::end, views_));,
   if /*zip-is-common*/<const Views...> evaluates to false. Otherwise,
     * return begin() + std::iter_difference_t</*iterator*/<true>>(size());,
   if ranges::random_access_range<const Views> && ... evaluates to true. Otherwise,
     * return /*iterator*/<true>(/*tuple-transform*/(ranges::end, views_));.

Parameters
   (none)

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

Notes
   ranges::range<const ranges::zip_view<Views...>> is modeled if and only if for every
   type Vi in Views..., const Vi models range.

Example
    This section is incomplete
    Reason: no example

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