禁用 Visual Studio2013 中的 c++11 功能
Disable c++11 features in Visual Studio2013
在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一起使用?
- 如何使用lock_guard在c++11中实现scoped_lock功能
- 如何获得CMake Tools以在Visual Studio Code中编译具有C++11(或更高版本)功能的程序?
- C++11 功能 std::map::at 编译旧版本的C++
- C++03 和 C++11 之间的c_str功能规范的差异
- =删除用户定义的成员功能,除了构造函数,分配运算符C 11
- 如何实现声明功能-C 11,编译时间
- C 11:功能表指针,lambdas
- C 11功能参数
- 我如何知道我的编译器是否支持XXXXC++11功能
- 检查是否使用了 C++11 功能
- 警告:禁用犰狳中的 C++11 功能
- 如果我使用c++11功能编译一个文件,同时将其链接到一个没有c++11编译器选项编译的库,会有什么问题吗
- 编译器选项不适用于无序集C++11功能
- 正在禁用VS2012上的C++11功能
- 如何在不使用C++11功能的情况下初始化类中的数组
- 分割故障:11 - C功能
- 禁用 Visual Studio2013 中的 c++11 功能
- 如何检测我的源代码中使用了哪些 C++11 功能
- 有没有一个网页,微软保存了在最新的VC++中实现的C++11功能的最新列表
- 是 std::max_element 是 C++11 x 功能