2011-08-06から1日間の記事一覧

MPL でカリー化

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>

Variadic template template parameters に関して,ちょっとした疑問

C++

次のコードは 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>…