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

来自cppreference.com
< cpp‎ | ranges‎ | take view‎ | sentinel
 
 
 
std::ranges::take_view
成员函数
推导指引
哨位
operator==(std::counted_iterator,take_view::sentinel)
(C++20)
 
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 的迭代器与哨位间的比较 使得在可能时支持