Namespaces
Variants

operator==(std::ranges::take_view::哨位<Const>)

来自 zh.cppreference.net
 
 
范围库
范围适配器
 
 
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 获得)。

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

仅用于阐述的别名模板 /*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 的迭代器与哨位之间的
比较操作未获支持
在可能的情况下实现支持