constexprauto end() requires(!(/*simple-view*/<Views>&& ...); | (1) | (since C++23) |
constexprauto end()const requires(ranges::range<const Views>&& ...); | (2) | (since C++23) |
| (3) | (exposition only*) |
| | |
Returns aniterator or asentinel that compares equal to the end iterator of thezip_view.
Letviews_ denote the underlying tuple of views.
1) Equivalent to:
- return/*sentinel*/<false>(/*tuple-transform*/(ranges::end, views_));,
- if/*zip-is-common*/<Views...> evaluates tofalse. Otherwise,
- if(ranges::random_access_range<Views>&& ...) evaluates totrue. 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 tofalse. Otherwise,
- ifranges::random_access_range<const Views>&& ... evaluates totrue. Otherwise,
- return/*iterator*/<true>(/*tuple-transform*/(ranges::end, views_));.
[edit]Parameters
(none)
[edit]Return value
An iterator or sentinel representing the end of thezip_view, as described above.
ranges::range<constranges::zip_view<Views...>> is modeled if and only if for every typeVi inViews...,const Vi modelsrange.
[edit]Example
| This section is incomplete Reason: no 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] |