禁用vs2013中的c ++ 11功能

use*_*442 10 c++ c++11 visual-studio-2013

有没有办法在vs 2013中编写代码时禁用c ++ 11功能,我希望我的代码也可以在像vs2008这样的旧编译器上编译.

我厌倦了通过:project-> properties-> general-> platform tool-set,并将"Visual Studio 2013(v120)"更改为更旧的东西,但这是我在下拉菜单中唯一拥有的东西.

mas*_*oud 9

你不能.

遗憾的是,您无法在Visual Studio中禁用C++ 11功能并降级为C++ 03或C++ 98.你可以在这里和这里看到哪些功能属于C++ 11 ,尽量不要使用它们.

但是,更好的选择是使用较旧的VS版本以确保不使用任何新功能.

就个人而言,我在Windows中使用MinGW/GCC,我可以通过使用编译器开关禁用C++ 11 -std=c++03,-std=c++98或者不使用-std=c++11.


Len*_*ate 7

如果安装了其他版本的Visual Studio,则可以选择较旧的工具集.这可能有点帮助.

恕我直言,更好的解决方案是建立一个持续集成服务器,为所有支持的编译器,配置和平台构建代码.一旦您执行了不受支持的操作,您就会立即获得构建中断.理想情况下,CI服务器还会运行所有单元测试,以便您还可以查看是否有任何配置中断了测试.