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

< 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` 的迭代器与哨位间的比较 | 使得在可能时支持