std::ranges::basic_istream_view::iterator
来自 cppreference.cn
< cpp | ranges | basic istream view
struct /*iterator*/; |
(仅为演示目的*) | |
ranges::basic_istream_view<Val, CharT, Traits>::iterator
是 ranges::basic_istream_view<Val, CharT, Traits> 的 begin()
返回的迭代器的类型。
iterator
是一个 input_iterator
,但不满足 LegacyInputIterator,因此不适用于 C++20 之前的 算法。
[编辑] 嵌套类型
类型 | 定义 |
iterator_concept
|
std::input_iterator_tag |
difference_type
|
std::ptrdiff_t |
value_type
|
Val
|
[编辑] 数据成员
成员 | 定义 |
ranges::basic_istream_view<Val, CharT, Traits> parent_ |
指向父视图的指针 (仅为演示目的的成员对象*) |
[编辑] 成员函数
std::ranges::basic_istream_view::iterator::iterator
/*iterator*/( const /*iterator*/& ) = delete; |
(1) | (自 C++20 起) |
/*iterator*/( /*iterator*/&& ) = default; |
(2) | (自 C++20 起) |
constexpr explicit /*iterator*/( basic_istream_view& parent ); |
(3) | (自 C++20 起) |
1) 复制构造函数被删除。迭代器不可复制。
2) 移动构造函数为默认。
std::ranges::basic_istream_view::iterator::operator=
/*iterator*/& operator=( const /*iterator*/& ) = delete; |
(1) | (自 C++20 起) |
/*iterator*/& operator=( /*iterator*/&& ) = default; |
(2) | (自 C++20 起) |
1) 复制赋值运算符被删除。迭代器不可复制。
2) 移动赋值运算符为默认。
std::ranges::basic_istream_view::iterator::operator++
/*iterator*/& operator++(); |
(1) | (自 C++20 起) |
void operator++(int); |
(2) | (自 C++20 起) |
2) 等价于 ++*this。
std::ranges::basic_istream_view::iterator::operator*
Val& operator*() const; |
(自 C++20 起) | |
[编辑] 非成员函数
operator==(std::ranges::basic_istream_view::iterator, std::default_sentinel)
friend bool operator==( const /*iterator*/& x, std::default_sentinel_t ); |
(自 C++20 起) | |
此函数对于普通的非限定查找或限定查找是不可见的,并且只能通过实参依赖查找在 std::ranges::basic_istream_view::iterator
是参数的关联类时找到。
[编辑] 缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
DR | 应用于 | 已发布行为 | 正确行为 |
---|---|---|---|
P2325R3 | C++20 | 默认构造函数作为 C++20 提供 迭代器必须是 default_initializable |
已移除, साथ 该要求 |