如何在Visual Studio 2010中"activate" c ++ 11标准?
How to "activate" c++11 standard in visual studio 2010?
我是 c++ 编程的新手,我需要在我的 VS 2010 项目中使用 Thread 类。我找到了这个参考,但是当我尝试以下内容时:
#include <thread>
VS 2010显然告诉我"错误:无法打开源代码文件"线程"。我知道我需要以某种方式"激活"c ++ 11 标准。我什至不知道从哪里开始。
那么我应该怎么做才能在Visual Studio 2010中使用()c++11标准呢?
std::thread
显然不在VS 2010中。我认为它是在VS 2012中添加的,这个问题和答案也支持它。您是否使用 2010 而不是最新版本 2013,后者支持 C++11 的更多部分?
另请注意:与GCC相反,MSVC没有对新标准的"选择加入"。就实施而言,它只是开箱即用地支持它们。
编译器不完全兼容C++11。自Visual Studio 2010以来,C++11功能一直得到支持,并且是逐步添加的。即使是下一版本的Visual Studio也不会提供完全的C++11兼容性。可以在此处找到不同版本的Visual Studio中可用的C++11功能矩阵:
- VC10 中的 C++0x 核心语言功能:表
- C++11 Visual C++ 11 中的功能
- C++11/14 VS 2013 中的 STL 功能、修复和重大更改
> 默认情况下启用 C++11,但在 VS 2010 中实现的功能并不多。C++11标准库在VS 2010中缺少许多标头。以下是有关 C++11 支持的最后几个 VS 版本的比较。
自己发现的。
要在Visual Studio中"激活"c ++ 11,您需要将项目>属性中的"平台工具集"设置为v110或更高版本。所以这就是Visual Studio理解它应该使用c ++ 11功能的方式。
但!
Visual C++ 编译器不完全兼容 C++11。自Visual Studio 2010以来,C++11功能一直得到支持,并且是逐步添加的。即使是下一个版本的Visual Studio也不会提供完全的C++11兼容性。
马吕斯·班西拉
所以它在Visual Studio 2012中适用于<thread>
(和<future>
)。
正如我建议的那样,不可能在 vs2010 中将平台工具集设置为 v100 以上,因此不可能在 vs2010 中"激活"c++11。
结论:若要在 Visual Studio 中使用 C++11 标准功能,需要使用支持 Platform Toolset v110 及更高版本的 2012 及更高版本。
如果我错了,请纠正我!
d= (◕‿↼) C++11
默认启用,但不幸的是,即使是"Visual Studio 2017"也不完全C++11
兼容。
(我在构建
Boost
时来到这里,其中的构建部分只提到他们需要C++11
兼容的编译器,而不是他们Boost
测试MSVC
版本。
Microsoft 说:
"Visual Studio 2019 版本 16.8 及更高版本中支持 C11 和 C17 标准"
但我还没有测试他们的说法。
- 使用CMake检测支持的C++标准
- 如何理解C++标准N3337中的expr.const.cast子句8
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 编译标准库类型
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 编译器如何在使用SFINAE的函数和标准函数之间确定两者是否可行
- 铸造标准::有没有回到原来的类型
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- this_thread::sleep_for和计时时钟之间的关系是否由C++11标准指定
- 标准库类型的赋值运算符的引用限定符
- 标准是否严格定义了该程序应该如何编译?
- 如何从Windows应用程序输出到标准?
- 安全到标准:移动会员?
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- 这是否符合C++标准:双响双响,例如!!(-0.0).
- 标准::变体的赋值运算符
- 捕获标准输出以压缩并使用 CTRL-C 中断会给出损坏的 zip 文件
- 如何在 Mac 上使用 c++17 并行标准库算法?
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- 如何在Visual Studio 2010中"activate" c ++ 11标准?