operator+,-(ranges::enumerate_view::iterator)

来自cppreference.com


 
 
范围库
范围适配器
 
 
friend constexpr /* iterator */

    operator+( const /* iterator */& i, difference_type n )

    requires ranges::random_access_range</* Base */>;
(1) (C++23 起)
friend constexpr /* iterator */

    operator+( difference_type n, const /* iterator */& i )

    requires ranges::random_access_range</* Base */>;
(2) (C++23 起)
friend constexpr /* iterator */

    operator-( const /* iterator */& i, difference_type n )

    requires ranges::random_access_range</* Base */>;
(3) (C++23 起)
friend constexpr difference_type
    operator-( const /* iterator */& i, const /* iterator */& j ) noexcept;
(4) (C++23 起)

实行迭代器算术或计算两个迭代器之间的距离。

pos_ 是底层索引,Base 是底层视图的(可能 const 限定的)类型。

等价于:

1) auto temp = i; temp += n; return temp;
2) return i + n;
3) auto temp = i; temp -= n; return temp;
4) return i.pos_ - j.pos_;

这些函数对常规的无限定有限定查找不可见,而只能在 enumerate_view::iterator<Const> 为实参的关联类时由实参依赖查找找到。

参数

i, j - 迭代器
n - 相对当前位置的偏移

返回值

1,2) 推进了的迭代器
3) 回退了的迭代器
4) 两个迭代器之间的距离

示例

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 3912 C++23 重载 (4) 不是 noexcept 它是 noexcept

参阅

推进或减小底层迭代器
(公开成员函数)