operator+,-(ranges::elements_view::iterator)
来自 zh.cppreference.net
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
的差值运算符约束过严
|
放宽约束要求 |