命名空间
变体
操作

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

来自 cppreference.com
< cpp‎ | ranges‎ | take view‎ | sentinel
 
 
范围库
范围适配器
 
 
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++ 标准。

DR 应用于 已发布的行为 正确行为
LWG 3449 C++20 迭代器和不同 const 限定的 take_view 的哨兵之间的比较
不受支持
在可能的情况下得到支持