13

我尝试对emplace()unordered_map 使用函数,编译器说不存在这样的函数。

我把-std=c+11它说cc1plus.exe: error: unrecognized command line option '-std=c+11'

我可以以某种方式将 C++11 功能与 mingw 一起使用吗?

4

1 回答 1

14

来自GCC 文档

C++0x 是新的 ISO C++ 标准的工作名称,该标准于 2011 年作为 C++11 发布,并在标准 C++ 语言和库中引入了许多新功能。该项目旨在在 GCC 中实现新的 C++11 功能,并使其成为首批将 C++11 带给 C++ 程序员的编译器之一。

C++11 功能在 GCC 的 Subversion 存储库的主干以及 GCC 4.3 及更高版本中作为“主线”GCC 编译器的一部分提供。要启用 C++0x 支持,请将命令行参数-std=c++0x添加到 g++ 命令行。或者,要启用除 C++0x 扩展之外的 GNU 扩展,请将 -std=gnu++0x 添加到您的 g++ 命令行。GCC 4.7 及更高版本也支持-std=c++11和 -std=gnu++11。

因此,对于 gcc 4.3 到 4.6,使用 -std=c++0x,对于更高版本,使用 -std=c++11。map::emplace在 gcc 4.8 中添加了库支持

于 2013-04-22T09:51:17.637 回答