>>803
これくらいなら出来る

#include <boost/mpl/if.hpp>
#include <boost/type_traits/is_integral.hpp>

using namespace boost;

template<class T>
struct Y {};

template<class T>
struct Z {};

template<class T>
struct X {
typedef mpl::if_<is_integral<T>, Y<T>, Z<T> >::type type;
};