2017-08-17 117 views
4

在下面的代碼正常工作:偏特在C++中的模板:模板參數不可推論

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> {}; 

你能解釋這種現象的原因是什麼?

+1

我想你已經知道了,但是專業化應該是'template class Fib {};'' – user463035818

回答

4

我相信你只是缺少了部分特正確的語法:

template<typename T, int n> 
class Fib { 

}; 

template<typename T> 
class Fib<T*,0> { 

}; 

在模板中的第一個參數的類型,而第二個僅僅是一個恆定值。