Namespaces
Variants

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

From cppreference.net
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++ 标准。

DR 适用范围 发布时的行为 正确行为
LWG 3449 C++20 不同const限定 take_view 的迭代器与哨位之间的
比较操作未获支持
在可能的情况下实现支持