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