operator+,-(ranges::transform_view::iterator)
从 zh.cppreference.net
friend constexpr /*iterator*/ operator+( /*iterator*/ i, difference_type n )
requires ranges::random_access_range<Base>;
|
(1) | (C++20 起) |
friend constexpr /*iterator*/ operator+( difference_type n, /*iterator*/ i )
requires ranges::random_access_range<Base>;
|
(2) | (C++20 起) |
friend constexpr /*iterator*/ operator-( /*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 之间的距离。这些函数对普通的非限定或限定查找不可见,只能通过实参依赖查找在 transform_view::iterator<Const> 是实参的关联类时找到。
参数
| i, x, y | - | 迭代器。 |
| n | - | 相对于当前位置的偏移量。 |
返回值
令
parent_
表示指向父级
transform_view
的指针,
current_
表示底层迭代器。
1,2)
/*iterator*/
{
*
i.
parent_
, i.
current_
+
n
}
3)
/*iterator*/
{
*
i.
parent_
, i.
current_
-
n
}
4)
x.
current_
-
y.
current_
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 适用标准 | 发布行为 | 正确行为 |
|---|---|---|---|
| LWG 3483 | C++20 |
transform_view::iterator
的差值类型约束过严
|
放宽约束要求 |