ということを思いついた.それだけ.
#ちなみに上のコードは2時間ぐらいでちょーてけとーに組んだだけの,まともにテストもしてないものなので,何が起こってもわたしゃ知らん.
#いちおーモチベーションとしては,複数のオブジェクト (コンテナや Range) をストリーム出力する際に,カスタマイズの柔軟性と手軽さの両立を図りたい,というもの.各要素のストリーム出力の方法を operator<< に固定すると柔軟じゃないよ〜な感じでいやんだったので.上の場合,各要素のための Source を適当に取り替えれば各要素の出力も変えられる.上の ostreamable_source (boost::lexical_cast を使う.つまり大元は operator<<)はデフォルトのストリーム出力方法として用意したもの.
#あ,やべ. std::basic_string に &buf_[0] 使ってた.恥ずかし.
#ぬーん,これダメだにゃー.これだと最初にメモリ上に全展開するから面白くない.いや,面白くなくはないけれど,ストリームにする意味があまりない.