7

对于希望他的 C++ 代码在不同的 C++ 编译器之间可移植的人来说,是时候开始使用 C++11,还是需要一段时间才能让所有主要编译器(VC、 GCC、CLang、英特尔)?

换句话说,主要编译器对 C++11 的支持情况如何?

4

3 回答 3

6

Clang(定期更新):

http://clang.llvm.org/cxx_status.html

GCC 4.5 到 4.7(定期更新):

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

Visual C++ 10 和 11(有点旧,但我发现是最新的):

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

于 2012-07-23T09:38:15.277 回答
3

所有主要编译器的最新版本都支持某些C++11 功能。但是还没有编译器提供完整的支持,如果您希望您的代码具有可移植性,您可能还必须考虑并非每个人都在使用其编译器的最新版本。

所以答案是“视情况而定”。

所有主要编译器都支持许多功能。(auto例如,rvalue refs 和 lambdas 广泛可用)。

在某些(但不是全部)编译器上还提供了许多功能。

@Kos 发布的链接应该让您很好地了解每个编译器的位置。

您是否可以/应该开始使用 C++11 完全取决于您。

于 2012-07-23T09:42:55.337 回答
2

除了提到的网站之外:在这里可以找到包含编译器支持 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

于 2012-07-23T10:54:42.797 回答