std::ranges::zip_view<Views...>::end
来自cppreference.com
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*/ = |
(3) | (仅用于阐述*) |
令 views_
代表底层的视图元组。
1) 等价于:
- 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_));。
2) 等价于:
- 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
的末尾的迭代器或哨位,如上所述。
注解
当且仅当对于 Views...
中的每个类型 Vi
,const Vi 都实现 range
时,ranges::range<const ranges::zip_view<Views...>> 得以实现。
示例
本节未完成 原因:暂无示例 |
参阅
返回指向起始的迭代器 (公开成员函数) | |
(C++20) |
返回指示范围结尾的哨位 (定制点对象) |