probleme spécialisation template
Bonjour a tous,
Etant encore a la decouverte du monde merveilleux des templates :lol: j'ai rencontré une erreur en essayant de spécialisé une fonction membre de ma classe template. Voila le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
template<typename T>
class Vector2D
{
public:
....
//ma fonction à spécialiser :
template<typename T2> static T2 norm(const Vector2D<T> & myVector2D); //fonction statique template permettant de calculer la norme et de retourner le type T2.
};
//declaration de la fonction :
template<typename T>
template<typename T2>
T2 Vector2D<T>::norm(const Vector2D<T> & myVector2D)
{
...//aucun probleme avec la declaration de cette fonction
}
//specialisation souhaité :s
template<typename T>
template<>
int Vector2D<T>::norm(const Vector2D<T> & myVector2D)
{
...//erreur de compilation la fonction ne correspond a aucun modele???
} |
Voila le probleme je n'ai pas trouvé de solution pour spécialiser cette fonction (excepté remplacer le retour du type T2 par un argument supplémentaire!!) est-ce un probleme de syntaxe ou simplement c'est impossible? :cry:
merci d'avance
Bonne journée