std::tuple の Fusion アダプト

Sandbox にありました。Fusion を C++0x に移植する試みのようです (参照)。
https://svn.boost.org/svn/boost/sandbox/SOC/2009/fusion/

自分でも書いてみました。GCC 4.5, GCC 4.6, VC10 に対応しています。
ヘッダ https://gist.github.com/996989
テスト https://gist.github.com/996990
GCC の <tuple> は、tuple_size と tuple_element が cv 修飾された tuple に対応していない*1という残念なことになっているので、簡単な workaround を入れました。上のもので動かないケースにも対応しているかもしれません。

*1:FDIS 20.4.2.5 参照