std::ranges::zip_view<Views...>::end

来自cppreference.com
< cpp‎ | ranges‎ | zip view
 
 
范围库
范围适配器
 
 
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_ 代表底层的视图元组。

1) 等价于:
  • return /*sentinel*/<false>(/*tuple-transform*/(ranges::end, views_));
/*zip-is-common*/<Views...> 求值为 false
(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
ranges::random_access_range<const Views> && ... 求值为 true
  • 否则为 return /*iterator*/<true>(/*tuple-transform*/(ranges::end, views_));

参数

(无)

返回值

表示 zip_view 的末尾的迭代器或哨位,如上所述。

注解

当且仅当对于 Views... 中的每个类型 Viconst Vi 都实现 range 时,ranges::range<const ranges::zip_view<Views...>> 得以实现。

示例

参阅

返回指向起始的迭代器
(公开成员函数)
返回指示范围结尾的哨位
(定制点对象)