命名空间
变体
操作

operator==(std::ranges::take_view::sentinel<Const>)

来自 cppreference.cn
< cpp‎ | ranges‎ | take view‎ | sentinel
 
 
范围库 (Ranges library)
范围适配器 (Range adaptors)
 
 
friend constexpr bool

    operator==( const std::counted_iterator<ranges::iterator_t<Base>>& y,

                const /*sentinel*/& x );
(1) (C++20 起)
template< bool OtherC = !Const >

    requires std::sentinel_for<ranges::sentinel_t<Base>,
                               ranges::iterator_t</*add-const-if*/<OtherC, V>>>
friend constexpr bool
    operator==( const std::counted_iterator<
                          ranges::iterator_t</*add-const-if*/<OtherC, V>>>& y,

                const /*sentinel*/& x );
(2) (C++20 起)

take_view::/*sentinel*/std::counted_iterator(通常通过调用 take_view::begin 获得)进行比较。

如果 y 指向第 N 个元素之后(其中 N 是传递给 take_view 构造函数的数字),或者底层视图的末尾已到达,则返回 true

仅用于说明的别名模板 /*add-const-if*/ 定义如下:
template<bool C, class T>
using /*add-const-if*/ = std::conditional_t<C, const T, T>;
.

这些函数对普通的非限定限定查找不可见,只有当 std::ranges::take_view::sentinel<Const> 是参数的关联类时,才能通过实参依赖查找找到它们。

!= 运算符由 operator== 合成

目录

[编辑] 参数

y - 要比较的 std::counted_iterator
x - 要比较的哨兵

[编辑] 返回值

y.count() == 0 || y.base() == x.end_,其中 end_ 表示底层哨兵。

[编辑] 示例

[编辑] 缺陷报告

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

缺陷报告 应用于 发布时的行为 正确的行为
LWG 3449 C++20 迭代器与哨兵的比较
不同 const-qualified 的 take_view 不受支持
在可能的情况下予以支持