std::ranges::enumerate_view<V>::end

来自cppreference.com
 
 
范围库
范围适配器
 
 
constexpr auto end() requires (!__simple_view<V>);
(1) (C++23 起)
constexpr auto end() const requires /*range-with-movable-references*/<const V>;
(2) (C++23 起)

返回与 enumerate_view 的尾迭代器比较相等的迭代器或者哨位

base_ 代表底层视图。

1) 等价于:
if constexpr (ranges::forward_range<V> and
              ranges::common_range<V>  and
              ranges::sized_range<V>)
    return /*iterator*/<false>(ranges::end(base_), ranges::distance(base_));
else
    return /*sentinel*/<false>(ranges::end(base_));
2) 等价于:
if constexpr (ranges::forward_range<const V> and
              ranges::common_range<const V>  and
              ranges::sized_range<const V>)
    return /*iterator*/<true>(ranges::end(base_), ranges::distance(base_));
else
    return /*sentinel*/<true>(ranges::end(base_));

参数

(无)

返回值

如上述,表示 enumerate_view 的末尾的迭代器或者哨位

示例

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 3919 C++23 ranges::distance 对并非前向的有大小公共底层范围会引发 UB 对这种范围返回哨位类型

参阅

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