constexpr istreambuf_iterator() noexcept;
istreambuf_iterator(const istreambuf_iterator&) noexcept = default;
istreambuf_iterator(istream_type& s) noexcept;
istreambuf_iterator(streambuf_type* s) noexcept;
istreambuf_iterator(const proxy& p) noexcept;
istreambuf_iteratorオブジェクトの構築
istreambuf_iterator()
デフォルトコンストラクタメンバ変数として保持するstreambuf
オブジェクトへのポインタをヌル初期化する。istreambuf_iterator(istreamtype& s) noexcept
s.rdbuf()
をメンバ変数として保持する。istreambuf_iterator(streambuf_type* s) noexcept
s
をメンバ変数として保持するistreambuf_iterator(const proxy& p) noexcept
後置operator++()
が返すであろうproxyオブジェクトを受け取り、そのオブジェクトが指すstreambuf
オブジェクトへのポインタをメンバ変数として保持する。
例
#include <iostream>
#include <iterator>
#include <sstream>
int main()
{
std::stringstream ss;
ss << "123";
// ストリームの参照から構築
std::istreambuf_iterator<char> it1(ss);
// streambuf*から構築
std::istreambuf_iterator<char> it2(ss.rdbuf());
std::cout << *it1 << std::endl;
std::cout << *it2 << std::endl;
}
出力
1
1