zippedはリストのタプルを綴じ合わせるRangeアダプタです。
以下の場合では、{1,2,3}と{4,5,6}を要素に持つタプルにzippedを適用すると
{(1 4), (2 5), (3 6)}というタプルのリストになります。
#include <iostream> #include <boost/tuple/tuple.hpp> #include <boost/tuple/tuple_io.hpp> #include <pstade/oven/initial_values.hpp> #include <pstade/oven/zipped.hpp> #include <pstade/oven/io.hpp> using namespace pstade::oven; int main() { std::cout << (boost::make_tuple(initial_values(1, 2, 3), initial_values(4, 5, 6))|zipped) << std::endl; }
{(1 4),(2 5),(3 6)}
リストの要素数が合ってない場合は無限ループして落ちるようです。
#include <iostream> #include <boost/tuple/tuple.hpp> #include <boost/tuple/tuple_io.hpp> #include <pstade/oven/initial_values.hpp> #include <pstade/oven/zipped.hpp> #include <pstade/oven/io.hpp> using namespace pstade::oven; int main() { std::cout << (boost::make_tuple(initial_values(1, 2, 3), initial_values(4, 5, 6, 7))|zipped) << std::endl; }
{(1 4),(2 5),(3 6),(4 7),(5 -858993460),(6 -858993460),(7 1244628),(-858993460 1244640),(-858993460 1244640),(1244628 1244656),(1244640 -858993460),(1244640 -858993460),(1244656 -858993460),(-858993460 -858993460),(-85899340 -858993460)...
【参照】
pstade::oven::zipped