2011-08-06から1日間の記事一覧
curryN<F> で,N-ary なメタ関数クラス F をカリー化します. #ifndef CURRY_HPP #define CURRY_HPP #include <boost/mpl/bind.hpp> #include <boost/mpl/placeholders.hpp> #include <boost/mpl/protect.hpp> #include <boost/preprocessor/arithmetic/dec.hpp> #include <boost/preprocessor/cat.hpp> #include </boost/preprocessor/cat.hpp></boost/preprocessor/arithmetic/dec.hpp></boost/mpl/protect.hpp></boost/mpl/placeholders.hpp></boost/mpl/bind.hpp></f>
次のコードは gcc 4.6.0 と clang 2.9 でコンパイルの通るものです. template <class T = void> struct A {}; template <template <class ...> class U> struct B { U<> a; }; B<A> b; B<A> のインスタンス化中は U = A となっているわけですが,U<> が通るということは,U には A のデフォルト引数が使</a></a></template></class>…