<tbody>
</tbody>
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
<tbody>
</tbody>
| /*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) 移动构造函数被预置。
3) 以
std::addressof(parent) 初始化
parent_ 。
std::ranges::basic_istream_view::iterator::operator=
<tbody>
</tbody>
| /*iterator*/& operator=( const /*iterator*/& ) = delete;
|
(1) |
(C++20 起) |
| /*iterator*/& operator=( /*iterator*/&& ) = default;
|
(2) |
(C++20 起) |
| | |
1) 复制赋值运算符被弃置。迭代器不可复制。
2) 移动赋值运算符被预置。
std::ranges::basic_istream_view::iterator::operator++
<tbody>
</tbody>
| /*iterator*/& operator++();
|
(1) |
(C++20 起) |
| void operator++(int);
|
(2) |
(C++20 起) |
| | |
2) 等价于 ++*this。
std::ranges::basic_istream_view::iterator::operator*
<tbody>
</tbody>
| Val& operator*() const;
|
|
(C++20 起) |
| | |
返回 parent_ ->value_。
非成员函数
operator==(std::ranges::basic_istream_view::iterator, std::default_sentinel)
<tbody>
</tbody>
| friend bool operator==( const /*iterator*/& x, std::default_sentinel_t );
|
|
(C++20 起) |
| | |
返回 !*parent_ ->stream_。
此函数对常规的无限定或有限定查找不可见,而只能在 std::ranges::basic_istream_view::iterator 为实参的关联类时由实参依赖查找找到。
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。