禁用vs2013中的c ++ 11功能

时间:2014-04-30 11:07:40

标签: c++ c++11 visual-studio-2013

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

我厌倦了改变: project-> properties-> general-> platform tool-set,and change" Visual Studio 2013(v120)" 对于较旧的东西,但这是我在那里的下拉菜单中唯一的东西。

5 个答案:

答案 0 :(得分:9)

你不能。

很遗憾,您无法在Visual Studio中禁用C ++ 11功能并降级为C ++ 03或C ++ 98。您可以看到哪些功能属于C ++ 11 herehere,请尽量不要使用它们。

然而,更好的选择是使用较旧的VS版本,以确保您不使用任何新功能。

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

答案 1 :(得分:7)

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

更好的解决方案,IMHO,是建立一个持续集成服务器,为所有支持的编译器,配置和平台构建代码。一旦你做了一些不支持的事情,你就会得到构建中断。理想情况下,CI服务器还会运行所有单元测试,以便您还可以查看是否有任何配置中断了测试。

答案 2 :(得分:1)

Visual Studio 2015 Update 3引入了两个新开关(/ std:c ++ 14和/ std:c ++ latest),使您可以控制要在项目中使用的C ++编程语言版本。在此更新中,如果您指定的语言版本不是任何语言版本,编译器将忽略该开关(带有警告)并默认为C ++ 14。

请参阅https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/

答案 3 :(得分:0)

使用允许显式设置已使用标准的编译器(Clang和GCC允许选择标准版本)或熟悉C ++ 11中的更改​​,以便在代码中避免使用它们。

如果您需要参考:http://en.cppreference.com/w/两侧清楚地显示了某个功能的标准版本。

答案 4 :(得分:0)

将Visual Studio配置为使用不支持C ++ 11功能的其他编译器。 Intellisense仍将显示C ++ 11的功能,但您可以在检查之前捕获本地编译的问题。

How to use GCC with Microsoft Visual Studio?