Próbuję wpisać albo w mapę nieuporządkowaną, albo std :: map, w zależności od tego, czy dostępne są biblioteki TR1. Ale nie chcę określać parametrów szablonu. Z tego, co przeczytałem do tej pory, typowanie szablonów bez argumentów nie jest możliwe, dopóki nie będzie dostępny oficjalny standard C++ 0x. Więc czy ktoś zna to eleganckie rozwiązanie?Typedef klasa szablonu bez określania parametrów szablonu
#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
Zobacz to bardzo bliskie pytanie: http://stackoverflow.com/questions/544842/c-typedef-ing-stl i odpowiedzi. Szablon typedefs nie jest prawidłowy Polecenia C++ –
Benoit - Dzięki, to właśnie to, czego szukałem –
Bardzo podobne pytanie: http://stackoverflow.com/questions/6907194/how-to-typedef-a-template-class Ma inny odpowiedź, o której tu nie wspomniano: "szablon aliasu" w C++ 11 – Jayesh