【问题标题】:How can I force MinGW to use tr1 namespace?如何强制 MinGW 使用 tr1 命名空间?
【发布时间】:2011-06-07 09:32:03
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    包括<tr1/unordered_map> 并使用std::tr1::unordered_map<>

    编辑:

    我也在用 msvc10 编译这段代码,它在两个命名空间中都支持它,但只在一个位置。所以我想让它与两个编译器一起编译,尽可能少地改变。

    要使其与两个编译器一起编译,您可以使用以下内容:

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

    【讨论】:

    • 是的,这就是我们所做的,但我希望 MinGW 有一些神奇的定义。但这已经足够了。
    【解决方案2】:

    这不就这么简单

    #include <tr1/unordered_map>
    

    【讨论】:

      猜你喜欢
      • 2019-09-15
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多