std::ranges::basic_istream_view::iterator
來自 cppreference.com
< cpp | ranges | basic istream view
struct /*iterator*/; |
(僅作說明*) | |
ranges::basic_istream_view<Val, CharT, Traits>::iterator
是 ranges::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) 移動建構函式被預設。
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 起) |
2) 等價於 ++*this。
std::ranges::basic_istream_view::iterator::operator*
Val& operator*() const; |
(C++20 起) | |
[編輯] 非成員函式
operator==(std::ranges::basic_istream_view::iterator, std::default_sentinel)
friend bool operator==( const /*iterator*/& x, std::default_sentinel_t ); |
(C++20 起) | |
此函式對於普通的 非限定查詢 或 限定查詢 不可見,只能在 std::ranges::basic_istream_view::iterator
作為引數的關聯類時透過 實參依賴查詢 找到。
[編輯] 缺陷報告
下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。
缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
---|---|---|---|
P2325R3 | C++20 | C++20 中提供了預設建構函式 迭代器必須是 default_initializable |
與此一同刪除 要求 |