【发布时间】:2012-01-14 12:21:13
【问题描述】:
使用 C++03,可以(现在仍然)使用 MSVC 和 GCC 编写跨平台代码,在 Windows、Linux 和 Mac OS X 之间共享 C++ 代码库。
现在,C++11 的情况如何?似乎不同的 C++ 编译器实现了 C++11 的不同特性。要构建跨平台的 C++11 代码,将 MSVC10(VS2010)作为一种“最小公分母”是否安全?即,如果我们将批准的 C++11 功能限制为由 MSVC10 实现的功能,那么生成的 C++11 代码是否可以用 GCC 编译(因此可以在 Linux 和 Mac OS X 上使用)?
如果我们需要跨平台代码,还是等待 C++11 编译器成熟并坚持使用 C++03 更好?
谢谢。
【问题讨论】:
-
我知道您期望得到什么样的答案。使用所有编译器支持的特性,不要使用它们不支持的特性。这不是特定于 C++11,每次出现新标准时都会发生。或者,在任何地方都使用相同的编译器,而不必为此担心。
-
没有编译器支持所有 C++11,所以简短的回答是,你根本做不到。
标签: c++ cross-platform c++11