命名空间
变体
操作

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` 末尾的迭代器或哨兵。

[编辑] 注释

ranges::range<const ranges::zip_view<Views...>> 当且仅当 `Views...` 中的每个类型 `Vi`,`const Vi` 都模型化了 `range` 时,该模型才成立。

[编辑] 示例

[编辑] 参见

返回指向开头的迭代器
(公共成员函数) [编辑]
返回一个表示范围末尾的哨兵
(定制点对象)[编辑]