【发布时间】:2010-12-01 06:12:15
【问题描述】:
我正在尝试键入 unordered_map 或 std::map,具体取决于是否有可用的 TR1 库。但我不想指定模板参数。从我到目前为止所读到的,在官方 c++0x 标准可用之前,没有参数的 typedef'ing 模板是不可能的。那么有人知道一个优雅的解决方法吗?
#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
【问题讨论】:
-
查看这个非常接近的问题:stackoverflow.com/questions/544842/c-typedef-ing-stl 和提供的答案。模板 typedef 不是有效的 C++ 命令
-
Benoit - 谢谢,这正是我想要的
-
非常相似的问题:stackoverflow.com/questions/6907194/… 这里还有一个没有提到的答案:c++11 中的“别名模板”
标签: c++ templates c++11 typedef tr1