在Visual Studio中更改(使用旧版)C++版本

7

在Visual Studio中是否可以使用比c++11版本更旧的版本?一位类似的提问者得到的回答是无法使用更新的版本,但是我想让编译器在我使用仅适用于c++11的语言特性时发出警告。


2
只需在项目属性中设置平台工具集即可。 - paulm
或者安装一些较新的 GCC 变体 - 4.9 或更高版本; 或者一些较新的 Clang/LLVM(可能通过 cygwinmingw,或通过安装 Linux 发行版)。然后使用 g++ -std=c++98clang++ -std=c++98 进行编译.... 不要忘记要求所有警告和调试信息 -Wall -Wextra -g - Basile Starynkevitch
2个回答

3
要完全禁用Visual Studio中的C++11功能,您必须使用旧的工具集进行编译,该工具集不包含任何C++11功能。最后一个没有C++11支持的Visual Studio版本是VS2008(有关此问题的问题在此处:Visual Studio 2008 with c++11)。
要使用旧的工具集,您必须首先安装该版本的Visual Studio,然后修改“配置属性->常规->平台工具集”,并将其设置为适当的Visual Studio版本。当您使用Visual Studio 2008工具集进行编译时,任何C++11使用都将导致错误。

但是这需要安装VS2008。 - Ajay
这就是为什么我说:“要使用旧的工具集,您必须先安装该版本的Visual Studio” :) - MuertoExcobito
1
我明白这个“hack”的意思是你可以从你的新IDE中完成它,但实际上这只是在说“不要使用较旧版本的VS”! - Lightness Races in Orbit
@LightnessRacesinOrbit 确实如此,但它是针对所提出的问题的最佳答案。如果您更喜欢较新的IDE,或者您需要较新的IDE,因为它具有不支持旧版本的功能/插件,则与仅使用MSVC 2008相比,它确实提供了一些优势。如果MSVC在编译器功能和向后兼容性方面更加灵活/完整(例如gcc),那将是很好的,但事实并非如此。 - MuertoExcobito
这似乎有效。我遇到的另一个解决方案是使用Makefile进行编译。 - Kackao

0

不,如果不安装旧版的 MSVC,就无法在 Visual Studio 项目中禁用 C++11 功能。


正如我的回答所述,你可以这样做,只是很痛苦。 - MuertoExcobito
@MuertoExcobito编辑了我的答案,谢谢。 - Antwane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接