std::ranges::zip_view<Views...>::end
constexpr
auto end(
)
requires ( ! ( /*simple-view*/ <Views> && ...) ; |
(1) | (since C++23) |
constexpr
auto end(
)
const
requires ( ranges::range < const Views> && ...) ; |
(2) | (since C++23) |
template
<
class... Rs
>
concept /*zip-is-common*/
=
|
(3) | (exposition only*) |
Returns an iterator or a sentinel that compares equal to the end iterator of the zip_view
Let views_
denote the underlying tuple of views.
- return /*sentinel*/ < false > ( /*tuple-transform*/ ( ranges::end, views_) ) ;
- if /*zip-is-common*/<Views...> evaluates to false
- return begin( ) + std::iter_difference_t < /*iterator*/ < false >> (size( ) ) ;
- if ( ranges::random_access_range <Views> && ...) evaluates to true
- return /*iterator*/ < false > ( /*tuple-transform*/ ( ranges::end, views_) ) ;
- return /*sentinel*/ < true > ( /*tuple-transform*/ ( ranges::end, views_) ) ;
- if /*zip-is-common*/<const Views...> evaluates to false
- return begin( ) + std::iter_difference_t < /*iterator*/ < true >> (size( ) ) ;
- if ranges::random_access_range < const Views> && evaluates to true
- 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
returns an iterator to the beginning (public member function) |
|
(C++20)
|
returns a sentinel indicating the end of a range (customization point object) |