pstade::oven::concatenated

[お題]
2次元配列を1次元配列の様に走査したい。

#include <iostream>

#include <boost/range/algorithm/for_each.hpp>
#include <boost/array.hpp>

#include <pstade/oven/concatenated.hpp>

int
main(){
    namespace oven = pstade::oven;

    int array[3][3] = {
        {0, 1, 2},
        {3, 4, 5},
        {6, 7, 8}
    };

    boost::for_each(array|oven::concatenated, [](int n){
        std::cout << n;
    });

    return 0;
}


[出力]

012345678


行列や矩形データの様に2次元配列で保持するデータに対して捜査する場合に便利。
boost::array, 3> のような型に対しても走査することが出来ます。


ちなみに3次元配列の場合は、

int array[3][3][3] = {
    {
        {0, 1, 2},
        {3, 4, 5},
        {6, 7, 8}
    },
    {
        {0, 1, 2},
        {3, 4, 5},
        {6, 7, 8}
    },
    {
        {0, 1, 2},
        {3, 4, 5},
        {6, 7, 8}
    },
};

boost::for_each(array|oven::concatenated|oven::concatenated, [](int n){
    std::cout << n;
});

こんな感じで、oven::concatenated を2回行えば出来ます。
まさに致せり尽せり。


[pstade]
ver 1.04.3