I ont une fonction de modèle:Fonction spécialisation de modèle avec référence à pointeur
template<typename T>
void foo(const T& value) { bar(value); x = -1; }
Je veux me spécialiser pour un ensemble de types:
template<>
void foo<char>(const char& value) { bar(value); x = 0; }
template<>
void foo<unsigned char>(const unsigned char& value) { bar(value); x = 1; }
Il fonctionne bien. Quand je compile ceci:
template<>
void foo<char*>(const char*& value) { bar(value); x = 2; }
Je reçois une erreur:
error C2912: explicit specialization; 'void foo(const char *&)' is not a specialization of a function template
Est-il possible de se spécialiser avec char*
paramètre de type pointeur sans typedef'ing il?
Vous pourriez également faire ceci, non? 'template <> void foo (const char * const & valeur) {...}' Ce type d'approche fonctionne pour moi, même si je ne suis pas trouver nécessaire de préciser '' après 'foo'. –
Alan