如何强制MinGW使用tr1命名空间?

时间:2011-06-07 09:32:03

标签: c++ gcc c++11 mingw tr1

我正在使用MinGW 4.5.2并且我想使用tr1命名空间中的unordered_map,而不是通过传递-std = c ++ 0x来启用的std命名空间中的unordered_map。我确信这可以完成,因为有两个unordered_map文件,一个在tr1子目录中。

澄清: 我也用msvc10编译这个代码,它在两个命名空间中都支持unordered_map,但只支持在一个位置。所以我想让两个编译器尽可能地进行编译。

2 个答案:

答案 0 :(得分:7)

加入<tr1/unordered_map>并使用std::tr1::unordered_map<>

编辑:

  

我也在用msvc10编译这个代码,并且它在两个命名空间中都支持它,但只在一个位置支持它。所以我想让两个编译器尽可能地进行编译。

要使用两个编译器进行编译,您可以使用以下内容:

#if defined(_MSC_VER) && _MSC_VER >= 1600
# include <unordered_map>
#else
# include <tr1/unordered_map>
#endif

答案 1 :(得分:5)

这不像

那么简单
#include <tr1/unordered_map>