J'essaye de typedef soit unordered_map ou std :: map selon s'il y a des librairies TR1 disponibles. Mais je ne veux pas spécifier les paramètres du modèle. De ce que j'ai lu jusqu'ici, typedef'ing modèles sans arguments n'est pas possible jusqu'à ce que le standard officiel C++ 0x est disponible. Donc, quelqu'un sait-il une solution de contournement élégante pour cela?Typedef une classe de modèle sans spécifier les paramètres de modèle
#ifdef _TR1
#include <unordered_map>
typedef std::tr1::unordered_map MyMap; //error C2976: too few template arguments
#else
#include <map>
typedef std::map MyMap; //error C2976: too few template arguments
#endif
Voir cette question très proche: http://stackoverflow.com/questions/544842/c-typedef-ing-stl et les réponses fournies. Les typedefs de template ne sont pas valides. Commandes C++ –
Benoit - Merci, c'est exactement ce que je cherchais –
Question très similaire: http://stackoverflow.com/questions/6907194/how-to-typedef-a-template-class Il en a un autre réponse qui n'est pas mentionnée ici: "alias template" en C++ 11 – Jayesh