Bonjour,

prenons par exemple le code suivant (dum.h):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
template <typename T>
class Dum
{
//... code
};
Je ne comprend pas pourquoi je n'ai pas le droit de déclarer un pointeur sur Dum sans spécifier les paramètres templates:

Me génère l'erreur suivante:
1>c:\dev\test_template\test_template.cpp(8) : error C2955: 'Dum' : use of class template requires template argument list
En effet, un pointeur est juste une adresse, qui a donc une taille fixe. C'est lorsqu'on fait le new() qu'il va allouer la mémoire et donc avoir besoin des paramètres templates.

En fait, l'idée est de pouvoir faire quelque chose comme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Dum * dum;
if ( condition )
   dum = new Dum<int>();
else
   dum = new Dum<string>();
Enfin bref, ma question est la suivante: Pourquoi n'ai-je pas le droit de déclarer un pointeur sur une classe template sans en spécifier les paramètres templates?