Namespaces
Variants

std::ranges::basic_istream_view:: iterator

From cppreference.net
Ranges library
Range adaptors
struct /*iterator*/ ;
( 仅用于说明* )

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

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
随同要求
一并移除