std::ranges::basic_istream_view::iterator

来自cppreference.com
 
 
 
std::ranges::basic_istream_view
成员函数
迭代器
basic_istream_view::iterator::iterator
basic_istream_view::iterator::operator=
basic_istream_view::iterator::operator++
basic_istream_view::iterator::operator*
operator==(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 起)
1) 从亲 basic_istream_view 构造迭代器。
2) 复制构造函数被删除。迭代器不可复制。
3) 移动构造函数被默认化。迭代器可移动。

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 起)

从底层流读取值并将它存储于亲 basic_istream_view

返回值

1) *this
2) (无)

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++ 标准。

DR 应用于 出版时的行为 正确行为
P2325R3 C++20 因为 C++20 迭代器必须为 default_initializable 提供了默认构造函数 与该要求一同移除