-std = c ++ 11适用于使用gcc 4.8.1的生产代码

时间:2013-07-15 15:49:42

标签: c++ gcc c++11

gcc网站仍然说:“GCC对C ++ 11的支持仍然是实验性的。” (http://gcc.gnu.org/projects/cxx0x.html)。 在发布编译器的人说这个时,我觉得我的组织内部犹豫不决争论转向C ++ 11功能。 如果gcc说它是实验性的,我应该争论“-std = c ++ 11”吗?

1 个答案:

答案 0 :(得分:2)

我怀疑这是你可以争论的事情之一,直到一些罕见的事情发生(奶牛回家,地狱冻结等)而没有找到解决方案。

这里的关键是“实验支持”可能意味着如果你在GCC的支持合同上,你可能无法针对11个功能提出“缺陷”票。但另一方面,我们可以预期大多数功能都相当强大,因为在C ++ 11规范出现之前已经讨论了很长时间。

确定您的产品是否由编译器正确构建的关键仍然依赖于您对产品代码的测试(作为各个级别的单元(函数,类,共享库,对您的产品有意义的可执行文件)和“完整”产品)。根据C ++ 11支持是否具有实验性,这并没有真正改变。甚至非实验性代码在编译器中有时会中断。

要看的另一部分当然是“我们获得了什么好处,以及它对项目的影响程度”。你是在改变整个系统,还是在一个角落的一小部分,如果它可以通过以不同的方式做更多的步骤来解决这个问题?

最后,你必须选择“前进和避免风险之间的最佳平衡”。