とりあえず,なんか以下のコード片みたいにいろんな Range Adaptor を組み合わせて面白いことできないかな〜的なことを志向する感じで.
char const *ans = "0, 1, 2, 3, 4, 5, 6, 7, 8, 9"; assert( range::equal( range::counting( 0, 10 ) // 0, 1, 2, ..., 9 な Range を生成 | range::transformed( bll::bind( cradle::lexical_cast , bll::_1 , mpl::identity< std::string >() ) ) // int の Range を文字列の Range に変換 | range::delimited( std::string( ", " ) ) // 要素と要素の間に ", " な要素を挿入 | range::jointed // Range の Range を単一の Range に変換 , ans ) );
確認済みテストコード.上は出力というか非文字列 -> 文字列な変換に lexical_cast 使っているけれど,どちらかというと入力(文字列 -> 非文字列)の変換に lexical_cast 使いながら Range Adaptor 合成かける例のほうが面白い気がしてきた.
上のコード片実現するためにつぎ込んでいる実装要素技術を色々と書こうとしたけれど,列挙してみたらかなりの実装要素技術をつぎ込んでいることが判明してなんか途中で挫折してしまった……orz
#ていうかテストの回し方ぐらいは最低限書いておかないとまずいじゃないかっ!!