Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
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 的差值类型约束过严 放宽约束要求