如何";激活";c++;visual studio 2010中的11标准? 我是C++编程新手,我需要在VS 2010项目中使用线程类。 我发现了这一点,但当我尝试以下方法时: #include <thread> #包括

如何";激活";c++;visual studio 2010中的11标准? 我是C++编程新手,我需要在VS 2010项目中使用线程类。 我发现了这一点,但当我尝试以下方法时: #include <thread> #包括,c++,multithreading,visual-studio-2010,c++11,C++,Multithreading,Visual Studio 2010,C++11,VS2010显然告诉我‘错误:无法打开源代码文件“线程’”。我知道我需要以某种方式“激活”c++11标准。我甚至不知道从哪里开始 那么,要在visual studio 2010中使用()c++11标准,我应该做些什么呢?c++11在默认情况下处于启用状态,但在VS 2010中实现的功能并不多。在VS2010中,C++11标准库缺少许多标题。关于C++11支持的最近几个VS版本中。std::thread显然不在VS2010中。我认为它是与VS 2012一起添加的,VS 2012也支持它。您使用20

VS2010显然告诉我‘错误:无法打开源代码文件“线程’”。我知道我需要以某种方式“激活”c++11标准。我甚至不知道从哪里开始


那么,要在visual studio 2010中使用()c++11标准,我应该做些什么呢?

c++11在默认情况下处于启用状态,但在VS 2010中实现的功能并不多。在VS2010中,C++11标准库缺少许多标题。关于C++11支持的最近几个VS版本中。

std::thread
显然不在VS2010中。我认为它是与VS 2012一起添加的,VS 2012也支持它。您使用2010而不是支持C++11更多部分的最新版本2013,有什么具体原因吗


还要注意的是:与GCC相反,MSVC没有“选择加入”新标准。它只是支持它们的实现,

< P> Visual C++编译器不是完全兼容C++ 11。自VisualStudio2010以来,C++11功能一直受到支持,并逐渐增加。甚至Visual Studio的下一个版本也不能提供完全的C++11兼容性。不同版本的Visual Studio中提供的C++11功能矩阵可在以下位置找到:


    • 以下是我自己发现的

      要在VisualStudio中“激活”c++11,您需要将project->properties中的“平台工具集”设置为v110或更高版本。这就是VisualStudio理解它应该使用c++11特性的方式

      但是


      Visual C++编译器不是完全兼容C++ 11。自VisualStudio2010以来,C++11功能一直受到支持,并逐渐增加。甚至Visual Studio的下一个版本也不能提供完全的C++11兼容性

      马吕斯·班希拉

      因此,它在VisualStudio2012中为
      (和
      )工作

      正如我所建议的,在vs2010中不可能将平台工具集设置在v100以上,因此在vs2010中不可能“激活”c++11

      结论: 要在visual studio中使用c++11标准功能,您需要使用支持平台工具集v110及以上版本的2012及更高版本


      如果我错了,请纠正我

      在VS2012中添加,并在VS2013中进一步扩展。所以,如果你想启用
      ,你要么升级你的IDE,要么使用另一个编译器。这难道不会给你敲响警钟,你希望在一个名为2010的产品中支持2011年的标准吗?@DavidHeffernan,这不太相关。哦,我认为通过一些黑客攻击,你可以为你的项目设置一个自定义的构建选项,并在mingw或其他东西上使用GCC。@AngeloGeels使用mingw是相关的?!由于GCC完全支持C++11(几乎?),yes.VS 2012和2013倾向于显示其不稳定性。。另外,VS2010有宏,而较新版本没有。宏?到目前为止,2012/2013也从未出现过任何问题(除了2012年出现的坏
      std::regex
      )。与2010年相比,2012/2013年在处理大型项目时往往会使用更多的资源,这就要求每两个小时重新启动一次IDE。(2010年也有,但要少得多)宏:没有听说过这样的问题,也从未真正接触过IDE宏。但除此之外,如果您担心较新的IDE,您仍然可以安装一个与现有安装并行的较新版本(完整IDE或仅平台SDK),然后选择它作为不同于项目设置的编译器(我认为是MSVC 2010引入的).我之所以使用2010,是因为有一个特定的程序为vs2010生成源代码和解决方案文件。在该程序中有一个为2012年生成的选项,但我已经在我的机器上安装了2010。所以我并没有尝试使用2012,因为直到现在它还是不必要的(需要线程类)。现在我正在获取并安装2012和2013,以检查您的答案。