对于希望他的 C++ 代码在不同的 C++ 编译器之间可移植的人来说,是时候开始使用 C++11,还是需要一段时间才能让所有主要编译器(VC、 GCC、CLang、英特尔)?
换句话说,主要编译器对 C++11 的支持情况如何?
Clang(定期更新):
GCC 4.5 到 4.7(定期更新):
Visual C++ 10 和 11(有点旧,但我发现是最新的):
http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx
所有主要编译器的最新版本都支持某些C++11 功能。但是还没有编译器提供完整的支持,如果您希望您的代码具有可移植性,您可能还必须考虑并非每个人都在使用其编译器的最新版本。
所以答案是“视情况而定”。
所有主要编译器都支持许多功能。(auto
例如,rvalue refs 和 lambdas 广泛可用)。
在某些(但不是全部)编译器上还提供了许多功能。
@Kos 发布的链接应该让您很好地了解每个编译器的位置。
您是否可以/应该开始使用 C++11 完全取决于您。
除了提到的网站之外:在这里可以找到包含编译器支持 c++11 功能的确切版本的不同编译器的比较:
http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
列出的编译器:
HP aCC、EDG eccp、GCC、英特尔 C++、MSVC、IBM XLC++、Sun/Oracle C++、C++ Builder 2009/10、Digital Mars C++、Clang