阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

GCC 8.1 支持 C++2a 的部分特性

  • 2018-05-16
  • 本文字数:922 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

GCC 8.1 是 GNU 编译器集的最新主版本,该版本对即将到来的 C++2a 标准的某些部分提供了实验性支持。此外,GCC 8.1 改进了性能分析驱动的优化,并把 Go 支持提升到了 1.10.1 版本。

虽然对于即将到来的 C++ 草案,有关工作尚处于起步阶段,但 GCC C++ 前台提供了两个新标识-std=c++2a-std=gnu++2a,以便启用已经预先批准的部分 C++ 新特性,其中包括指定初始化针对位域的默认成员初始化器针对预处理程序逗号省略的 VA_OPT lambda 捕获 [=, this] 简化的隐式lambda 捕获等等。要了解GCC 8 中的全部C++2a 特性,请查阅 C++ 状态页面

此外,C++ 的前台输出现在改进了诊断信息,包括改进了位置和位置范围,并提供了若干新的故障排除线索。例如,在以下情况下,编译器现在可以提供一个线索,如在定义之前使用宏,试图访问类或结构的私有字段,当旧式的转换可以用static_castconst_castreinterpret_cast替代。

GCC 8.1 显著改善了性能分析驱动的优化。这些优化使用对被检测代码的性能分析结果决定优化哪一部分代码。例如,GCC 现在默认会把面向x86 的函数分成热区和冷区。热函数的优化力度更大,GCC 会把它们放在同一个区域里,增强局部性。同样,GCC 现在能够从一个有效运行的程序中检测不执行的代码,比如,它在某一时刻触发了未定义的行为。

谈到优化,该版本还新增了循环优化,如 -floop-unroll-and-jam执行外部循环展开和内部循环融合,-floop-interchange执行嵌套循环中的循环互换,增强数据局部性。一些已有的优化器也经过了改进,包括-floop-nest-optimize-ftree-loop-distribution。所有优化器都是使用-O3标识默认启用的。

前面已经提到,Go 支持经过了改进,这得益于 Go 1.10.1 的完整实现,这是 Go 最新的官方版本。此外,其垃圾收集器现在是完全并发的了。

最后需要注意的一点是, GCC 8.1 还引入了 Armv8.4-A 架构支持,可以通过-march=armv8.4-a选项启用,可伸缩向量扩展(SVE)支持现在是作为Armv8.2-A 架构及更高版本的可选扩展。

GCC 8.1 还包含许多更有趣的变化,要了解全部细节,请查看官方的发布说明

查看英文原文 New GCC 8.1 Supports Some Features of C++2a

2018-05-16 19:001900
用户头像

发布了 1008 篇内容, 共 373.9 次阅读, 收获喜欢 340 次。

关注

评论

发布
暂无评论
发现更多内容

怎么保护自己的音乐作品不被盗用,用FL制作防盗水印片段

懒得勤快

版权保护 音乐 音乐制作 编曲

阿里聚划算5轮面试题:GC收集器、多线程锁、海量数据技术考核

Java架构之路

Java 程序员 架构 面试 编程语言

Java内存模型JMM详细解析

程序员 面试 并发编程 架构师

刚参加完阿里P6面试归来(Offer已斩获),6点面试经验总结

Java架构之路

Java 程序员 架构 面试 编程语言

一只支持凡尔赛文学创作的摄影手机

脑极体

数字人民币红包迎战“双十二” 六大行钱包全接入

CECBC

数字人民币

架构师训练营 1 期第 12 周:数据应用(一)- 作业

piercebn

极客大学架构师训练营

spring2.5.6+java6升级到spring4+java8了

阿水

Java spring 升级

LeetCode题解:22. 括号生成,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

命令行搜索神器fzf

Rayjun

Linux

架构师系列9: 找出单向链表合并节点

桃花原记

推进工业互联网和区块链创新发展

CECBC

区块链 互联网

shell脚本的使用该熟练起来了,你说呢?(篇三)

良知犹存

Shell

100+大厂应届offer,从7个维度全面分析

程序员小灰

编程 面试 面经 腾讯大厂

架构师训练营第 12 周学习总结

netspecial

极客大学架构师训练营

架构训练营-week12-作业1

于成龙

2020最新最全的Java架构面试复习指南,掌握10%阿里P7没问题

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营第 12 周作业

netspecial

极客大学架构师训练营

面试官:简单说一下RocketMQ整合SpringBoot吧

比伯

Java 编程 程序员 架构 计算机

架构师训练营第八周作业

丁乐洪

图解MyBatis

田维常

《前端算法系列》如何让前端代码速度提高60倍

徐小夕

Java 算法 大前端

《架构即未来:现代企业可扩展的Web架构流程和组织》.pdf

田维常

架构

2020的另一面:5G的斯普特尼克之年

脑极体

美团十年架构师精心分享:手写分布式消息中间件RocketMQ笔记

小Q

学习 面试 微服务 MQ 中间件

OSI七层模型与TCP/IP五层模型

Linux服务器开发

TCP/IP 网络协议栈 底层应用开发 Linux服务器开发 OSI

架构训练营-week-12总结

于成龙

架构训练营

玛雅公约软件系统开发|玛雅公约APP开发

系统开发

TCC Demo 代码实现

Java 分布式事务 Demo TCC

陪你手撕源码系列之 STL set 相关算法

herongwei

c++ 算法 set stl

可能会重塑未来移动支付市场的格局

CECBC

货币

GCC 8.1支持C++2a的部分特性_开源_Sergio De Simone_InfoQ精选文章