Bonjour à tous.

J'ai un problème avec les templates, et apres 2 heures de recherche je ne comprends absolument pas comment le résoudre.
Voici ce que je fais :

J'ai une classe dans laquelle je déclare une fonction membre template :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
template<class T>
T Add(T, T);
Puis je définis ma méthode, toujours dans le .h, apres la déclaration de ma classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
template<class T>
T
Ma_Classe::Add(T x, T y)
{
    return x + y ;
}
Tout ceci compile très bien. Mais dès lors que je veux utiliser cette méthode en la spécifiant, j'ai une erreur de compile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
unsigned long a = 4 ;
unsigned long b = 5 ;
unsigned long c = Add<unsigned long>( a, b );
Et donc le compilateur (je suis sous Visual C++ 6) me répond :

Error 2062 : type unsigned long unexpected
Alors que faire ? Je ne comprends vraiment pas mon erreur.
Merci pour votre aide.

Alexandre