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

Nik*_*nić 3 c++ gcc mingw tr1 c++11

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

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

小智 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
Run Code Online (Sandbox Code Playgroud)


Bo *_*son 5

这不是那么简单

#include <tr1/unordered_map>
Run Code Online (Sandbox Code Playgroud)