我尝试为unordered_map使用emplace()
函数,编译器说没有这样的函数存在。
我把-std=c+11
,它说cc1plus.exe: error: unrecognized command line option '-std=c+11'
我能以某种方式使用mingw的C ++ 11function吗?
从GCC文档
C ++ 0x是新的ISO C ++标准的工作名称,该标准于2011年作为C ++ 11发布,并在标准C ++语言和库中引入了大量新功能。 这个项目试图在GCC中实现新的C ++ 11功能,并使其成为第一个将C ++ 11引入到C ++程序员的编译器之一。
C ++ 11特性可作为GCC Subversion版本库的主干中的“主线”GCC编译器的一部分以及GCC 4.3和更高版本中的一部分。 要启用C ++ 0x支持,请将命令行参数-std = c ++ 0x添加到您的g ++命令行中。 或者,要启用除C ++ 0x扩展外的GNU扩展,请在您的g ++命令行中添加-std = gnu ++ 0x。 GCC 4.7和更高版本支持-std = c ++ 11和-std = gnu ++ 11。
因此,对于gcc 4.3到4.6,使用-std = c ++ 0x,对于以后的版本使用-std = c ++ 11。 在gcc 4.8中添加了对map::emplace
库支持