我寫函數模板和一個明確專門的模板功能它只是發生在3個參數,並計算它們之間並打印它最大的。模板化功能..錯誤:模板id不匹配任何模板聲明
專門的功能導致錯誤,而模板工作正常。 但我想與字符*類型。
這是我得到=> error: template-id ‘Max<>’ for ‘void Max(char, char, char)’ does not match any template declaration
繼錯誤是我的代碼:
template <typename T>
void Max(T& a,T& b,T& c)
{
if(a > b && a >> c)
{
cout << "Max: " << a << endl;
}
else if(b > c && b > a)
{
cout << "Max: " << b << endl;
}
else
{
cout << "Max: " << c << endl;
}
}
template <>
void Max(char* a,char* b,char* c)
{
if(strcmp(a,b) > 0)
{
cout << "Max: " << a << endl;
}
else if(strcmp(b,c) > 0)
{
cout << "Max: " << b << endl;
}
else
{
cout << "Max: " << b << endl;
}
}
首先使原始簽名正確。模板 void Max(T&a,T&b,T&c) –
2010-10-14 15:57:09
在我的情況下,它是由於向constants添加const specilizatoin造成的,因此導致與主模板函數不匹配。 – FaceBro 2017-09-26 16:09:51