stream, filtering_streamのコンストラクタとパイプライン
これらのコンストラクタはいくつかオーバーロードされてるのですが、
なるべく短いコードで書きたい(I/Oが行える状態にしたい)です。書きましょう。
streamのコンストラクタ引数は、Deviceのコンストラクタ引数と同じものを取ります。
namespace io = boost::iostreams; io::stream<io::file_sink> file("baby.hs");
filtering_stream(istream/ostream)のコンストラクタは、0以上のFilterのインスタンスと1つのDeviceのインスタンスを引数に取ります。
Filterを使わない場合。
io::filtering_ostream out(io::file_sink("index.html"));
Filterを使う場合。
io::filtering_istream in(
io::gzip_decompressor() | io::file_source("gzip_file.gz"));
なんかでてきました。パイプラインです。
1つ目のFilterがPipable*1なら|演算子を使ってFilterやDeviceを連結することができます。