std::ranges::elements_view<V,N>::iterator
< cpp | ranges | elements view
template< bool Const >
class /*iterator*/; // 仅用于阐释 |
(C++20 起) | |
elements_view::begin
的返回类型,及 elements_view::end
在底层类型为 common_range
时的返回类型。
const 限定重载返回 /*iterator*/<true> 。非 const 限定重载返回 /*iterator*/<false> 。
此类模板的名字(此处示为 iterator
)是未指定的。
成员类型
成员类型 | 定义 |
Base (私有) |
若 Const 为 true 则为 const V ,否则为 V 。名字仅用于阐释 |
iterator_concept |
若 Base 实现 random_access_range 则为 std::random_access_iterator_tag ,若 Base 实现 bidirectional_range 则为 std::bidirectional_iterator_tag ,若 Base 实现 forward_range 则为 std::forward_iterator_tag ,否则为 std::input_iterator_tag |
iterator_category |
若 Base 不实现 forward_range 则不定义。
|
value_type |
std::remove_cvref_t<std::tuple_element_t<N, ranges::range_value_t<Base>>> |
difference_type |
ranges::range_difference_t<Base> |
成员对象
成员名 | 定义 |
current_ (私有) |
ranges::iterator_t<Base> 类型对象,名字仅用于阐释 |
成员函数
(C++20)
|
构造迭代器 (公开成员函数) |
(C++20)
|
返回底层迭代器 (公开成员函数) |
(C++20)
|
访问第 N 元组元素(公开成员函数) |
(C++20)
|
按下标访问元素 (公开成员函数) |
推进或减少底层迭代器 (公开成员函数) |
非成员函数
比较底层迭代器 (函数) |
|
(C++20)
|
进行迭代器算术 (函数) |
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
DR | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
P2259R1 | C++20 | 始终定义成员 iterator_category |
仅若 Base 实现 forward_range 才定义 |
LWG 3555 | C++20 | iterator_concept 的定义忽略 const |
使之考虑 |