Namespaces
Variants

std::ranges::basic_istream_view::iterator

来自 zh.cppreference.net
 
 
范围库
范围适配器
 
 
struct /*iterator*/;
(仅用于说明*)

ranges::basic_istream_view<Val, CharT, Traits>::iterator 是由 begin() 的 ranges::basic_istream_view<Val, CharT, Traits> 返回的迭代器类型。

iterator 是一个 input_iterator,但不满足 LegacyInputIterator,因此不能与C++20之前的 algorithms 一起工作。

嵌套类型

类型 定义
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) (since C++20)
/*iterator*/ ( /*iterator*/ && ) = default ;
(2) (since C++20)
constexpr explicit /*iterator*/ ( basic_istream_view & parent ) ;
(3) (since C++20)
1) 复制构造函数被删除。该迭代器不可复制。
2) 移动构造函数被默认实现。
3) 使用 std:: addressof ( parent ) 初始化 parent_ 。

std::ranges::basic_istream_view:: iterator :: operator=

/*iterator*/ & operator = ( const /*iterator*/ & ) = delete ;
(1) (since C++20)
/*iterator*/ & operator = ( /*iterator*/ && ) = default ;
(2) (since C++20)
1) 复制赋值运算符被删除。该迭代器不可复制。
2) 移动赋值运算符被默认实现。

std::ranges::basic_istream_view:: iterator :: operator++

/*iterator*/ & operator ++ ( ) ;
(1) (since C++20)
void operator ++ ( int ) ;
(2) (since C++20)
1) 等价于 * parent_  - > stream_ >> parent_  - > value_ 。
2) 等价于 ++* this 。

std::ranges::basic_istream_view:: iterator :: operator*

Val & operator * ( ) const ;
(since C++20)

返回 parent_  - > value_ 。

非成员函数

operator== (std::ranges::basic_istream_view:: iterator , std::default_sentinel)

friend bool operator == ( const /*iterator*/ & x, std:: default_sentinel_t ) ;
(since C++20)

返回 ! * parent_  - > stream_ 。

此函数对普通的 非限定查找 或 限定查找 不可见,仅当 std::ranges::basic_istream_view:: iterator 作为参数的关联类时,才能通过 实参依赖查找 找到。

缺陷报告

下列行为变更缺陷报告被追溯应用于先前发布的C++标准。

缺陷报告 应用于 发布时的行为 正确行为
P2325R3 C++20 默认构造函数作为C++20提供
迭代器必须满足 default_initializable
随同要求
一并移除