template<typename T, typename U, int value>
class type{
public:
T a;
U b;
type():a(value), b(value){}
};
template<typename U>
template type<std::vector<int>, U, 1> newType; // 不合法的
c++11使用using,解决这个场景
template<typename T>
using newType = type<int, T, 9>; // 合法