以下代码可以正常使用:
template<typename T, int n>
class Fib {};
template<typename T,int n>
class Fib<T*,n> {};
但下面的代码显示错误为:
错误:模板参数在部分特化中无法推导:
template<typename T, int n>
class Fib {};
template<typename T,int n>
class Fib<T*,0> {};
你能解释一下这种行为的原因吗?
答案 0 :(得分:4)
我相信你只是缺少部分专业化的正确语法:
template<typename T, int n>
class Fib {
};
template<typename T>
class Fib<T*,0> {
};
模板上的第一个参数是type,而第二个参数只是一个常量值。