在C ++ 11中学习新功能的推荐资源是什么?它上面还有书吗?最新版本的g ++ / Visual Studio是否支持它?
答案 0 :(得分:8)
当前版本的g ++和VC ++都支持 C ++ 11的某些功能,但都不支持所有内容(总的来说,我说g ++目前支持更多的虽然新功能)。 MS已经透露了他们计划添加到下一版VC ++的内容;简短摘要“不是很多”。但是,两者都有一些非常重要的新功能(例如,两者似乎都很好地处理了lambda)。
就像书籍这样的资源来说,它们目前还很微薄。 C ++ Concurrency in action (由Anthony Williams撰写)涵盖了新的线程库,但这几乎是唯一的(并且它显然只涵盖了一个新的方面)。
答案 1 :(得分:8)
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/
答案 2 :(得分:4)
关于C ++ 11的维基百科页面有一个很好的功能列表,但它可能并不详尽。在GCC can be found here中的C ++ 11支持状态,在Clang it can be found here中。