Namespaces
Variants

std::ranges::basic_istream_view::iterator

から ja.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) parent_ を std:: addressof ( parent ) で初期化します。

(注:指定されたテキストブロック内に翻訳対象の自然言語テキストが存在しないため、HTML構造はそのまま保持されています)

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 。

(注:指定されたテキストブロック内に翻訳対象の自然言語テキストが含まれていないため、HTML構造はそのまま保持されています)

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++規格に対して遡及的に適用されました。

DR Applied to Behavior as published Correct behavior
P2325R3 C++20 default constructor was provided as C++20
iterators must be default_initializable
removed along with
the requirement