在"experimental".中,GCC对这个网页 C++14标准的支持被定义为C++14
既然我想在我的C++11代码中使用C++ 14对std::make_unique的一些改进(例如std::make_unique和泛型lambdas),那么使用GCC 4.9的-std=c++14选项作为生产代码是安全的吗,或者说,当前GCC/C++14的状态是否类似于"beta“,而这样的C++/C++14还没有准备好用于生产代码呢?
发布于 2015-03-10 21:22:56
目前GCC/C++14的状态是否类似于"beta“,而GCC/C++14还没有准备好生产代码?
这取决于您使用哪些功能。make_unique非常简单,易于实现,应该是安全的。
其他一些新特性(尤其是核心语言特性)需要更多的工作来实现,并且可能会有更多的bug等待发现和修复。
所以没有一个“它准备好了”或者“它还没有准备好”的答案。
然而,需要注意的一件重要的事情是,虽然它仍然被贴上实验性的标签,但并没有试图保持GCC 4.x和GCC 5之间的向后兼容性。因此,如果您有用GCC 4.8构建的C++11代码,如果您想要链接到其他用4.9构建的C++11/C++14对象,那么需要重新编译所有这些代码;同样地,如果/当您迁移到GCC 5时:重新编译所有使用C++11或C++14的对象(因为std::tuple之类的类型更改了C++14 5中的数据布局)。
对于C++03代码,我们不会在不同版本之间更改定义,因此它们是稳定的。
https://stackoverflow.com/questions/28933901
复制相似问题