Boost.Fusion

tupleをiterateする

使い道があるのか分かりませんが… 大胆な実装 同じ型に変換しないと使えない rectangle r; triangle t; circle c; boost::tuple<rectangle*, triangle*, circle*> tup(&r, &t, &c); BOOST_FOREACH (shape *s, oven::hetero<shape *>(tup)) { s->draw(); }</shape></rectangle*,>

関数の引数を名前付きにする

Boost.Parameterは使うのが恐ろしいので、それに近いことをするhigher-order関数 named (実装とサンプル) 名前無しと名前付きを混ぜられない Boost.Fusionが必要

変数名推論

tupleの場合はできます "推論"に、使用する関数の仮引数の型を使える場合もあります (auto_element) []#include[] []<set>[]</set>

Boost.Fusion

Boost.Spiritに含まれ、Boost.TupleをFusion Sequenceとしてコンセプト化し、置きかえるもの MPL SequenceはFusion Sequenceの要件を満たす MPLは型を操作し、Fusionはオブジェクトを操作する 「fusion」とはコンパイルタイムとランタイムのプログラミングの…