Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
friend constexpr /*iterator*/ operator + ( const /*iterator*/ & i, difference_type n )
requires ranges:: random_access_range < Base > ;
(1) (C++20 起)
friend constexpr /*iterator*/ operator + ( difference_type n, const /*iterator*/ & i )
requires ranges:: random_access_range < Base > ;
(2) (C++20 起)
friend constexpr /*iterator*/ operator - ( const /*iterator*/ & i, difference_type n )
requires ranges:: random_access_range < Base > ;
(3) (C++20 起)
friend constexpr difference_type operator - ( const /*iterator*/ & x,

const /*iterator*/ & y )

requires std:: sized_sentinel_for < ranges:: iterator_t < Base > , ranges:: iterator_t < Base >> ;
(4) (C++20 起)
1,2) 返回迭代器 i 增加 n 后的结果。
3) 返回迭代器 i 减去 n 后的结果。
4) 返回 x y 之间的距离。

这些函数对普通的 非限定查找 限定查找 不可见,仅当 elements_view:: iterator <Const> 作为参数的关联类时,才能通过 实参依赖查找 找到。

目录

参数

i, x, y - 迭代器
n - 相对于当前位置的偏移量

返回值

1,2) [ & ] { auto j = i ; j + = n ; return j ; } ( )
3) [ & ] { auto j = i ; j - = n ; return j ; } ( )
4) x. base ( ) - y. base ( )

示例

缺陷报告

下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。

缺陷报告 应用于 发布时的行为 正确行为
LWG 3483 C++20 elements_view::iterator 的差值运算符约束过严 放宽约束要求