[关闭]
@Rays 2017-05-07T22:34:36.000000Z 字数 1459 阅读 2285

GCC 7.1发布,完全支持C++17

C++


摘要: 据GCC的维护者Jakub Jelinek所写,在GNU编译器套件集GCC的最新主版本GCC 7.1中,提供了丰富的新特性,包括:对当前C++17草案的实验性支持、更好的诊断能力以及新的优化技术。

作者: Sergio De Simone

正文:

据GCC的维护者Jakub Jelinek所写,在GNU编译器套件集GCC的最新主版本(Majoir Release)GCC 7.1中,提供了丰富的新特性,包括:对当前C++17草案的实验性支持、更好的诊断能力以及新的优化技术。

总所周知,GCC的稳定版(Stable Release)是从x.1开始编号的,而版本号x.0是为候选版(Release Candidate)预留的。因此,GCC 7.1是GCC 7的首个稳定版。

正如前面所提到的,GCC 7.1中的C++ Front End提供了对当前C++17草案的支持,所支持的特性包括constexpr、类模板参数推导(template argument deduction)、自动模板参数和结构化绑定等。GCC 7.1同时支持-std=c++1z-std=gnu++1z编译器标识。在C++的状态页面中,列出了C++ Front End中的所有新特性。正如InfoQ在前期所报道的,ISO C++委员会已于近期完成了对C++17的定义工作,只待得到组织中各国家机构的批准。

GCC 7还对优化器进行了改进,其中包括一些新的过程内和过程间优化,例如:

  1. int main (int argc, char **argv) {
  2. char *ptr;
  3. {
  4. char my_char;
  5. ptr = &my_char;
  6. }
  7. *ptr = 123; //这里,变量my_char的地址无效。
  8. return *ptr;
  9. }

在诊断方面,GCC 7.1改进了错误定位、错误定位范围、对错误拼写的标识符提出建议、选项名称和修复性(fix-it)提示,并给出了新的告警信息。

最后应注意的是,GCC 7.1中的一些改进可导致使用以前版本正常编译的C++代码出现编译不通过的问题。涉及的改进包括:更严格的模板规则、对操作符名字修饰(name mangling)转换的改进等。

GCC 7.1的全部改进列出于更新日志中。GCC 7.1可以从GNU FTP服务器下载。

查看英文原文: GCC 7.1 Released With Full C++17 Support

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注