関数テンプレートと、 3つの引数を取り、それらの中で最大のものを計算して出力する、明示的に特殊化されたテンプレート関数を作成しました。
テンプレートが正常に機能するのに対し、特殊な関数がエラーを引き起こしています。しかし、 char*型で作業したいと思います。
これは私が得るエラーです=>
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;
}
}