c++ 11资源和编译器

C++11 resources and compilers

本文关键字:编译器 资源 c++      更新时间:2023-10-16

学习c++ 11新特性的推荐资源是什么?有关于它的书吗?最新版本的g++/Visual Studio支持它吗?

当前版本的g++和vc++各自支持 c++ 11的一些特性,但两者都不支持所有的特性(总的来说,我要说g++目前支持更多的新特性)。微软透露了他们计划在下一个vc++版本中添加的内容;简短的总结是"不多"。然而,两者都有一些相当重要的新特性覆盖得很好(例如,两者似乎都能很好地处理lambdas)。

就书籍等资源而言,它们目前相当贫乏。 c++ Concurrency in action(作者:Anthony Williams)涵盖了新的线程库,但这几乎是唯一的一个(显然它只涵盖了一个新方面)。

c++ 11只是刚刚标准化,所以任何编译器支持都是实验性的,因为在引入支持时它还不是标准。Apache有一篇wiki文章,列出了哪些编译器支持哪些c++ 11特性。

来源:http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport

此时,

gcc是最好的选择。gcc 4.5支持大多数特性,现在几乎在每个最新的Linux发行版中都有。显然,更新的版本更好。他们的支持页面解释了哪些版本支持哪些特性。

来源:http://gcc.gnu.org/projects/cxx0x.html

Visual Studio 10有不错的支持。这篇MSDN博客文章列出了哪些特性在10中得到了支持,哪些特性计划在11中推出。

来源:http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx

英特尔c++编译器似乎是唯一一个具有良好支持的编译器。不过我对它了解不多,而且我认为它不是免费的。根据这篇文章,版本12似乎还不错,但我不确定它是否已经发布或正在开发中。

来源:http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/

关于c++ 11的Wikipedia页面有一个很好的特性列表,但它可能并不详尽。GCC中支持c++ 11的状态可以在这里找到,Clang中可以在这里找到。