GCC是否已准备好使用C ++ 14生产代码?

时间:2015-03-09 01:20:16

标签: c++ gcc c++14

this web page中,GCC对ISO C ++ 14标准的支持被定义为“ experimental ”。

由于我想在我的C ++代码中使用C ++ 11(例如std::make_unique和泛型lambdas)中的一些C ++ 14改进,我是否可以安全地使用-std=c++14用于生产代码的GCC 4.9选项,或者当前的GCC / C ++ 14状态类似于“beta”,因此GCC / C ++ 14还没有为生产代码做好准备?

1 个答案:

答案 0 :(得分:5)

  

目前的GCC / C ++ 14状态类似于“beta”,所以GCC / C ++ 14还没有为生产代码做好准备吗?

这取决于您使用的功能。 make_unique非常简单,易于实施,并且可以安全依赖。

其他一些新功能(尤其是核心语言功能)需要花费更多的工作才能实现,并且可能会有更多错误等待查找和修复。

所以没有单一的“它准备就绪”或“它没有准备好”的答案。

然而,需要注意的一件重要事情是,虽然它仍然被标记为实验性的,但是没有尝试保持GCC 4.x和GCC 5之间的向后兼容性。因此,如果您使用GCC 4.8构建C ++ 11代码,则需要重新编译它,如果要链接到使用4.9构建的其他C ++ 11 / C ++ 14对象,并且类似于/当您移动到GCC 5时:重新编译使用C ++ 11或C ++ 14的所有对象(因为std::tuple等类型在GCC 5中更改了数据布局。)

对于C ++ 03代码,我们不会更改版本之间的定义,因此它们是稳定的。