Bonjour,

J'ai un manuel C++ dans lequel il est indiqué que la déclaration des classes templates se code ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
template < class T >
class A
{
  // définition de la classe A paramétrée par T
};

et de même pour mes fonctions template :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
template < class T >
// définition de la fonction paramétrée par T
Or dans d'autres sources (la FAQ entre autres) j'ai pu voir que le mot clef class était remplacé par 'typename'. Quelle est donc la différence ?

Ecrire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
template < class T >
class A
{
  // définition de la classe A paramétrée par T
};
est-il équivalent à écrire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
template < typename T >
class A
{
  // définition de la classe A paramétrée par T
};

merci