std::ranges::basic_istream_view::iterator
struct
/*iterator*/;
|
(C++20 起) | |
basic_istream_view::begin
的返回类型。此处展示的名字 /*iterator*/
仅用于阐释。
/*iterator*/
为 input_iterator
,但不满足老式输入迭代器 (LegacyInputIterator)
,从而无法用于 C++20 前的算法。
成员类型
成员类型 | 定义 |
iterator_concept (C++20)
|
std::input_iterator_tag |
difference_type (C++20)
|
std::ptrdiff_t |
value_type (C++20)
|
Val
|
成员函数
(构造函数)
(C++20)
|
构造迭代器 (公开成员函数) |
operator=
(C++20)
|
复制赋值运算符被删除; /*iterator*/
为仅移动 (公开成员函数) |
operator++
(C++20)
|
令迭代器前进 (公开成员函数) |
operator*
(C++20)
|
返回当前元素 (公开成员函数) |
std::ranges::basic_istream_view::iterator::iterator
constexpr
explicit
/*iterator*/(
basic_istream_view&
parent );
|
(1) | (C++20 起) |
/*iterator*/(
const
/*iterator*/&
)
=
delete;
|
(2) | (C++20 起) |
/*iterator*/(
/*iterator*/&&
)
=
default;
|
(3) | (C++20 起) |
basic_istream_view
构造迭代器。std::ranges::basic_istream_view::iterator::operator=
/*iterator*/&
operator=(
const
/*iterator*/&
)
=
delete;
|
(1) | (C++20 起) |
/*iterator*/&
operator=(
/*iterator*/&&
)
=
default;
|
(2) | (C++20 起) |
std::ranges::basic_istream_view::iterator::operator++
/*iterator*/&
operator++();
|
(1) | (C++20 起) |
void
operator++(int);
|
(2) | (C++20 起) |
从底层流读取值并将它存储于亲 basic_istream_view
。
返回值
*this
std::ranges::basic_istream_view::iterator::operator*
Val&
operator*()
const;
|
(C++20 起) | |
返回到存储值的引用。
非成员函数
operator==
(C++20)
|
与 std::default_sentinel_t 比较 (公开成员函数) |
operator==(std::ranges::basic_istream_view::iterator, std::default_sentinel)
friend
bool
operator==(
const
/*iterator*/&
x, std::default_sentinel_t
);
|
(C++20 起) | |
与 std::default_sentinel_t
比较。
若 *this
无亲 basic_istream_view
或若底层流发生错误则返回
true 。
此函数对通常无限定或有限定查找不可见,而只能在
std::ranges::basic_istream_view::iterator
为参数的关联类时由实参依赖查找找到。
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
P2325R3 | C++20 | 因为 C++20 迭代器必须为 default_initializable
提供了默认构造函数
|
与该要求一同移除 |