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

Mr.*_*C64 8 c++ gcc c++14

这个网页中,GCC对ISO C++ 14标准的支持被定义为" 实验性 ".

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

Jon*_*ely 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::tupleGCC 5中更改的数据布局).

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