Bonjour a tous,
En fait je me demendais si il était possible pour une classe template de lui donner un type par defaut si il n'était pas précisé ?

Un peu comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
template<class T = MaClasseParDefaut> class MonVecteur;
template<class T>class MonVecteur{
 private:
   ...
 public:
   ...
};
le but etant de ne pas tout le temps devoir écrir:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
MonVecteur<MaClasseParDefaut> vec;
mais plutot:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
MonVecteur vec;
 
//et si besoin est:
/MonVecteur<UneAutreClasse> vec;
Le premier example de code que j'ai fourni a été trouvé sur le net, on passe un parametre par defaut en déclaration de la classe avant de la définir. Ca ne fait pas grand chose, en tout cas pas sous visual studio qui pour la ligne :

MonVecteur vec;
me retourne :

Error 1 error C2955: 'MonVecteur' : use of class template requires template argument list
C'est possible ou pas ^^ ?
(ps: Je me demande a l'instant si l'utilisation de Traits pourrait résoudre mon probleme? Mais je vois pas trop comment )