gcc对c++11支持的官方状态

20

这不是关于GCC支持哪些C++11特性的问题(我认为自从4.8以来,C++11支持已经非常完整了),而是在使用它们在生产代码中是否有任何已知问题。

我之所以问这个问题,是因为我看了一下gcc5.2手册,在“GCC支持的语言标准”一节中写道:

[...]其中大多数已在GCC的实验性C++11模式中实现。

那个实验性的词让我有点担心,但另一方面,C++14甚至没有被提到,尽管我相信GCC也支持所有这些功能。那么这只是文档上的疏忽,还是确实存在使用gcc5.2(4.8)编译的生产代码中使用C++11特性的有效问题?


我遇到了相同的问题。我认为在gcc中完全支持c++11(尤其是在2016年!)..但它仍被标记为实验性的.. - rkachach
1个回答

12

看起来实际上只是针对单词进行了实验性的。在gcc 6.0 中,它将不再是实验性的

C ++的默认模式现在是-std = gnu++14而不是-std = gnu++98。

但是现在,默认模式是gnu++98,因此它是实验性的(这也是我们现在不使用C ++11 / C ++14的原因之一)。


6
等等,真的吗?你不使用C++11是因为编译器强制要求你传递"-std"标志吗?/同情。 - Yakk - Adam Nevraumont
2
@Yakk,这并不是因为-std标志,而是因为experimental这个词。是的,我不喜欢它。但是Boost很有帮助。 - ForEveR
有没有gcc 6.0发布的任何信息? - MikeMB
1
@MikeMB C++03已经被纳入C++98模式中(在clang和gcc下它们是相同的:C++03被认为是C++98上的bug修复,我通过研究这个答案找到了这个结论:http://codegolf.stackexchange.com/a/48924/23424)。 - Yakk - Adam Nevraumont
1
@Yakk:感谢您的澄清,我之前不知道这一点。 - MikeMB
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接