禁用 Visual Studio2013 中的 c++11 功能

Disable c++11 features in Visual Studio2013

本文关键字:c++11 功能 中的 Studio2013 Visual 禁用      更新时间:2023-10-16

在Visual Studio 2013中编写代码时,有没有办法禁用C++11功能?

我希望我的代码也可以在VS 2008等较旧的编译器上编译。

我试图通过以下方式进行更改: project->properties->general->platform tool-set,并更改"Visual Studio 2013 (v120)"到更老的东西,但这是我在那里的下拉菜单中唯一的东西。

你不能。

很遗憾,您无法在 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

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

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

> 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/

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

如果您需要参考: http://en.cppreference.com/w/侧面清楚地显示了在哪个标准版本中引入了某个功能。

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

如何将GCC与Microsoft Visual Studio一起使用?