std::ranges::zip_view<视图>::end
constexpr auto end()
requires (!(/*simple-view*/<Views> && ...);
|
(1) | (C++23 起) |
constexpr auto end() const
requires (ranges::range<const Views> && ...);
|
(2) | (C++23 起) |
template< class... Rs >
concept /*zip-is-common*/ =
(sizeof...(Rs) == 1 && (ranges::common_range<Rs> && ...))
||
(!(ranges::bidirectional_range<Rs> && ...) && (ranges::common_range<Rs> && ...))
||
((ranges::random_access_range<Rs> && ...) && (ranges::sized_range<Rs> && ...));
|
(3) | (仅用于阐述*) |
返回一个 迭代器或一个 哨位,该哨位与 zip_view 的尾迭代器比较相等。
令 views_ 表示底层视图的元组。
return /*sentinel*/<false>(/*tuple-transform*/(ranges::end, views_));,
- 如果
/*zip-is-common*/<Views...>求值为false。否则,
return begin() + std::iter_difference_t</*iterator*/<false>>(size());,
- 如果
(ranges::random_access_range<Views> && ...)求值为true。否则,
return /*iterator*/<false>(/*tuple-transform*/(ranges::end, views_));。
return /*sentinel*/<true>(/*tuple-transform*/(ranges::end, views_));,
- 如果
/*zip-is-common*/<const Views...>求值为false。否则,
return begin() + std::iter_difference_t</*iterator*/<true>>(size());,
- 如果
ranges::random_access_range<const Views> && ...求值为true。否则,
return /*iterator*/<true>(/*tuple-transform*/(ranges::end, views_));。
参数
(无)
返回值
一个迭代器或哨兵,表示如上所述的
zip_view
的结束位置。
注释
ranges::
range
<
const
ranges::
zip_view
<
Views...
>>
当且仅当对于
Views...
中的每个类型
Vi
,
const
Vi
满足
range
概念时成立。
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
返回指向起始位置的迭代器
(公开成员函数) |
|
|
(C++20)
|
返回指示范围结束的哨兵
(定制点对象) |