On this page
std::ranges::zip_view<Views...>::end
 | 
      (1) | (since C++23) | 
 | 
      (2) | (since C++23) | 
 | 
      (3) | (exposition only*) | 
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.
return /*sentinel*/<false>(/*tuple-transform*/(ranges::end, views_));,
/*zip-is-common*/<Views...> evaluates to false. Otherwise, 
  return begin() + std::iter_difference_t</*iterator*/<false>>(size());,
(ranges::random_access_range<Views> && ...) evaluates to true. Otherwise, 
  return /*iterator*/<false>(/*tuple-transform*/(ranges::end, views_));.
return /*sentinel*/<true>(/*tuple-transform*/(ranges::end, views_));,
/*zip-is-common*/<const Views...> evaluates to false. Otherwise, 
  return begin() + std::iter_difference_t</*iterator*/<true>>(size());,
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
See also
| 
       
        (C++23)
         | 
      returns an iterator to the beginning  (public member function)  | 
     
| 
       
        (C++20)
         | 
      returns a sentinel indicating the end of a range (customization point object)  | 
     
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
 https://en.cppreference.com/w/cpp/ranges/zip_view/end