range の結合
boost::range には見当たりませんでしたが pstade::oven にありました。
boost にもあると速攻でツッコミを受けました。
boost::adaptros ばっかり見てて気がつかなかった…。
コメントありがとうございます。
#include <iostream> #include <boost/range/algorithm/for_each.hpp> #include <boost/range/join.hpp> #include <pstade/oven/jointed.hpp> int main(){ int even[] = {0, 2, 4, 6, 8}; int odd[] = {1, 3, 5, 7, 9}; // boost::join boost::for_each(boost::join(even, odd), [](int n){ std::cout << n << std::endl; }); // pstade::oven::jointed boost::for_each(even|oven::jointed(odd), [](int n){ std::cout << n << std::endl; }); return 0; }
出力
0 2 4 6 8 1 3 5 7 9
oven::jointed を使って結合しています。
boost の場合は、boost::join 関数に渡して結合を行ないます。
実装がどうなってるのか気になるのであとで調べてみよう。
[pstade]
ver 1.04.3
[参照]
http://d.hatena.ne.jp/faith_and_brave/20080110/1199955609