std::ranges::transform_view<V,F>::iterator
来自 cppreference.com
< cpp | ranges | transform view
template< bool Const > class /*iterator*/ |
(自 C++20 起) (仅供说明*) |
|
transform_view::begin
的返回类型,以及当基础视图为 common_range
时 transform_view::end
的返回类型。
类型 /*iterator*/<true> 由 const 限定的重载返回。类型 /*iterator*/<false> 由非 const 限定的重载返回。
内容 |
[edit] 成员类型
成员类型 | 定义 |
Parent (private) |
maybe-const <Const, ranges::transform_view<V, F>>(仅供说明成员类型*) |
Base (private) |
maybe-const <Const, V>(仅供说明成员类型*) |
迭代器概念
|
|
迭代器类别 (仅在 Base 符合forward_range )
|
令 MCF 为 maybe-const <Const, F>.
否则,令 |
value_type
|
std::remove_cvref_t<std::invoke_result_t<MCF&, ranges::range_reference_t<Base>>>, 其中 MCF 表示 maybe-const <Const, F> |
difference_type
|
ranges::range_difference_t<Base> |
[edit] 数据成员
成员名称 | 定义 |
current_ (private) |
(可能 const 限定的)V 中的迭代器。(仅用于说明的成员对象*) |
parent_ (私有) |
指向父 transform_view 的指针。(仅用于说明的成员对象*) |
[编辑] 成员函数
构造一个迭代器 (公有成员函数) | |
返回底层迭代器 (公有成员函数) | |
访问转换后的元素 (公有成员函数) | |
通过索引访问元素 (公有成员函数) | |
前进或后退底层迭代器 (公有成员函数) |
[编辑] 非成员函数
比较底层迭代器 (函数) | |
(C++20) |
执行迭代器运算 (函数) |
(C++20) |
获取对转换后的元素的右值引用 (函数) |
[编辑] 缺陷报告
以下行为更改缺陷报告被追溯应用到先前发布的 C++ 标准。
DR | 应用于 | 已发布的行为 | 正确行为 |
---|---|---|---|
P2259R1 | C++20 | 成员 iterator_category 始终定义 |
仅在 Base 模型 forward_range 时定义 |
LWG 3555 | C++20 | iterator_concept 的定义忽略了 const |
已考虑 |
LWG 3798 | C++20 | 如果转换结果为右值引用,则 iterator_category 为输入类型 |
可能具有更强的类别 |