[template] template, pointeur et allocation
Bonjour,
prenons par exemple le code suivant (dum.h):
Code:
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:
Citation:
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:
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?