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
的返回类型。
const 限定的重载返回 /*iterator*/<true>。非 const 限定的重载返回 /*iterator*/<false>。
成员类型
成员类型 | 定义 |
Parent (私有)
|
maybe-const <Const, ranges::transform_view<V, F>>(仅用于阐述的成员类型*) |
Base (私有)
|
maybe-const <Const, V>(仅用于阐述的成员类型*) |
iterator_concept
|
|
iterator_category (仅当 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> |
数据成员
成员名称 | 定义 |
current_ (私有)
|
指向(可能 const 限定的)V 的迭代器。(仅用于阐述的成员对象*) |
parent_ (私有)
|
指向父 transform_view 的指针。(仅用于阐述的成员对象*) |
成员函数
构造迭代器 (公开成员函数) | |
返回底层迭代器 (公开成员函数) | |
访问变换的元素 (公开成员函数) | |
按索引访问元素 (公开成员函数) | |
推进或减少底层迭代器 (公开成员函数) |
非成员函数
比较底层迭代器 (函数) | |
(C++20) |
进行迭代器算术 (函数) |
(C++20) |
获得到变换的元素的右值引用 (函数) |
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
P2259R1 | C++20 | 始终定义成员类型 iterator_category
|
仅若 Base 实现 forward_range 才定义
|
LWG 3555 | C++20 | iterator_concept 的定义忽略 const
|
使之考虑 |
LWG 3798 | C++20 | 当转换结果为右值引用时 iterator_category 仅为输入
|
可以有更强的类别 |