MinGW的C++ 11功能

pdr*_*rak 12 c++ windows mingw c++11

我尝试将emplace()函数用于unordered_map,编译器说没有这样的函数存在.

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

我可以以某种方式使用mingw的C++ 11功能吗?

Tem*_*Rex 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中添加了对库的支持