VC++ 2010 中的 C++0x 模式是否有关闭开关?我正在开发一个应该在非 0x 编译器上编译的项目,因此我想根据当前标准进行编译。(即使没有直接使用任何新功能,仍然存在使 C++0x 更具前提性的细微之处)。
我找到的最近的开关是,Configuration Properties -> C/C++ -> Language -> Disable Language Extensions
但不是这样。
VC++ 2010 中的 C++0x 模式是否有关闭开关?我正在开发一个应该在非 0x 编译器上编译的项目,因此我想根据当前标准进行编译。(即使没有直接使用任何新功能,仍然存在使 C++0x 更具前提性的细微之处)。
我找到的最近的开关是,Configuration Properties -> C/C++ -> Language -> Disable Language Extensions
但不是这样。
不,语言扩展通常是非标准的供应商特定添加。
C++0X 特性:没有直接的方法可以关闭这些特性。一种解决方法是不使用它们。但是,请注意,不同版本的 VC 运行时的性能仍然存在显着差异。VC10 实现了移动语义,标准库(std::string
例如)大量使用了这些特性。
在我看来,一个合理的折衷方案是切换回 VS2008。最近的 VS 版本臭名昭著(到目前为止,根据我的经验),并且在没有 Service Pack 的情况下从未按照应有的方式工作。VS2008 现在相当稳定,没有任何 C++0x 特性,应该符合您的要求。
看来您可以在 VS2010 中使用 vc2008 工具集,请参阅:Visual C++ 2010 compatible with VC 2008