10

VC++ 2010中的C++ 0x模式是否有关闭开关?我正在研究一个应该在非0x编译器上编译的项目,因此我想根据当前标准进行编译。 (即使没有直接使用这些新功能,仍然存在一些微妙之处,使得C++ 0x更加宽容)。在VC 2010中禁用C++ 0x功能?

我发现最接近的开关是Configuration Properties -> C/C++ -> Language -> Disable Language Extensions但事实并非如此。

回答

13

不,语言扩展通常是非标准供应商特定的添加。

C++ 0X功能:没有直接的方法来关闭这些功能。一种解决方法是不使用它们。但是,请注意,不同版本的VC运行时的性能仍然存在显着差异。 VC10实现移动语义,标准库(例如std::string)慷慨地使用这些功能。

我认为合理的妥协是切换回VS2008。最近的VS版本出了名的错误(迄今为止,以我的经验),并且从未像没有Service Pack那样工作过。 VS2008现在非常稳定,没有任何C++ 0x功能,应该适合您的账单。

+5

你也可以切换回在VS2010 IDE VS2008的编译器,以及在项目设置。 – Andy 2010-08-21 04:28:33