J'ai écrit un modèle de fonction et une fonction templated explicitement spécialisée qui prend simplement en 3 arguments et calcule le plus grand d'entre eux et l'imprime.Fonctions Templated .. ERREUR: modèle-id ne correspond à aucune déclaration de modèle
La fonction spécialisée provoque une erreur, alors que le modèle fonctionne correctement. Mais je veux travailler avec char * type.
C'est l'erreur que je reçois => error: template-id ‘Max<>’ for ‘void Max(char, char, char)’ does not match any template declaration
Après mon code:
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;
}
}
d'abord faire une bonne signature originale. template void Max (T & B, T & B, T & C) –
Dans mon cas, il est provoqué par l'ajout de const à returnt type specilizatoin, ce qui entraîne une discordance avec la fonction de modèle primaire. – FaceBro