template <typename T, int N>
struct Vector {
T data[N];
};
在您的主要模板类中,T
必须是一个type http://en.cppreference.com/w/cpp/language/template_parameters#Type_template_parameter, (int, short, class-type, etc
)... N
is a non-type http://en.cppreference.com/w/cpp/language/template_parameters#Non-type_template_parameter,并且必须是一个计算结果为int
键入(一个数字)。
struct Dynamic {
};
template <typename T>
struct Vector<T, Dynamic> {
T* data;
};
Dynamic
是一种类型。不是一个int
按照您的主模板中的指定
根据您的主模板类,您只能专门化第二个模板参数Vector
与int
. Eg.
template <typename T>
struct Vector<T, 1> {
T* data;
};
template <typename T>
struct Vector<T, 35> {
T* data;
};
template <typename T>
struct Vector<T, constExpressionThatReturnsAnInt> {
T* data;
};
...etc