table of contents
std::ranges::zip_view::end(3) | C++ Standard Libary | 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
2024.06.10 | http://cppreference.com |