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 . 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_ ) ) ; .
- 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
returns an iterator to the beginning
(public member function) |
|
(C++20)
|
returns a sentinel indicating the end of a range
(customization point object) |