名稱空間
變體
操作

std::ranges::basic_istream_view::iterator

來自 cppreference.com
 
 
範圍庫 (Ranges library)
範圍介面卡 (Range adaptors)
 
 
struct /*iterator*/;
(僅作說明*)

ranges::basic_istream_view<Val, CharT, Traits>::iteratorranges::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

/*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=

/*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 起)
1) 等價於 *parent_ ->stream_ >> parent_ ->value_
2) 等價於 ++*this

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

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

返回 parent_ ->value_

[編輯] 非成員函式

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

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

返回 !*parent_ ->stream_

此函式對於普通的 非限定查詢限定查詢 不可見,只能在 std::ranges::basic_istream_view::iterator 作為引數的關聯類時透過 實參依賴查詢 找到。

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
P2325R3 C++20 C++20 中提供了預設建構函式
迭代器必須是 default_initializable
與此一同刪除
要求