Bonjour a tous,
Etant encore a la decouverte du monde merveilleux des templatesj'ai rencontré une erreur en essayant de spécialisé une fonction membre de ma classe template. Voila le code :
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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??? }
merci d'avance
Bonne journée
Partager