【问题标题】:C++14 support in GCC is experimentalGCC 中的 C++14 支持是实验性的
【发布时间】:2015-03-10 12:36:47
【问题描述】:

引用GCC page on C++14 support

重要提示:因为最终 ISO C++14 标准最近才发布,所以 GCC 的支持是实验性的。不会尝试保持与不反映最终标准的 C++14 功能实现的向后兼容性。

我找不到experimental 的官方 GCC 定义。正如最后一句提到的,它是否仅适用于非标准功能的向后兼容性?还是它也表明稳定性或缺乏稳定性?同一页上的前一句说

C++14 功能作为“主线”GCC 编译器的一部分在 GCC 的 Subversion 存储库的主干以及 GCC 4.8 及更高版本中提供。

对我来说,这意味着稳定性。是这样吗?特别是,我的问题是关于 GCC 4.9,因为根据上述页面,这是最早支持 C++14 的版本。

【问题讨论】:

  • 你为什么在乎?海湾合作委员会的人们正在尽其所能,不做任何保证!
  • @BasileStarynkevitch:我不明白 GCC 尽力而为等同于不需要关心稳定性。
  • 4.9 不支持所有 C++14 语言功能。 5.0 将,IIRC。

标签: c++ gcc g++ c++14 g++4.9


【解决方案1】:

没有“官方的GCC定义”,只有官方的英文定义。

这段话的意思是,在 C++14 发布之前之前,GCC 之前已经实现了当时即将推出的 C++14 特性的实验原型,未来的版本将不会费心去尝试保持向后兼容那些实验。

两个版本之间的向后兼容性仅针对这些版本中包含的国际标准中的功能进行维护。

这是因为,在标准发布之前,新 C++ 功能的规范可能会发生相当大的变化。保证支持它们的早期实验将与最终在标准中发布的最终真实功能向前兼容,这将是疯狂的。

简而言之:使用实验性功能需要您自担风险,不要期望它们在 GCC 的下一个版本中以同样的方式工作

【讨论】:

  • 谢谢!是的,不承诺与完全预期的非标准功能向后兼容——这从引用中很清楚,否则会很疯狂。我的问题是,这是否是唯一的警告。
  • 我刚刚注意到他们的C++11 support page 说的几乎一样——Important: GCC's support for C++11 is still experimental. Some features were implemented based on early proposals, and no attempt will be made to maintain backward compatibility when they are updated to match the final C++11 standard.
  • @Pradhan:嗯,我不只是编造的! :)
  • 呃...对不起,如果我太密集了,但我没听懂。
  • GCC 5 中的 C++11 支持应该是非实验性的,也许也支持 C++14。
猜你喜欢
  • 2016-06-13
  • 1970-01-01
  • 2018-04-27
  • 2016-06-22
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 2015-03-07
相关资源
最近更新 更多