写点什么

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:002049
用户头像

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

关注

评论

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

TiDB 4.0 试玩体验--Tiflash

TiDB 社区干货传送门

实践案例

TiDB使用场景漫谈

TiDB 社区干货传送门

实践案例

TiDB备份实现

TiDB 社区干货传送门

管理与运维

TiKV 多副本丢失以及修复实践

TiDB 社区干货传送门

实践案例

DM在Docker环境部署安装

TiDB 社区干货传送门

生态工具原理学习笔记(笔记)

TiDB 社区干货传送门

Multi-Master 数据库概览

TiDB 社区干货传送门

TiKV架构原理(笔记)

TiDB 社区干货传送门

使 pt-kill 和 pt-query-digest 工具兼容 TiDB

TiDB 社区干货传送门

物化视图的更新

TiDB 社区干货传送门

TiDB-v4.0.x支持OLAP场景的一些实践经验

TiDB 社区干货传送门

性能调优

PD的时钟服务——TSO

TiDB 社区干货传送门

Elastic Stack处理TiDB慢日志

TiDB 社区干货传送门

TiKV笔记-Raft复制状态机--未完

TiDB 社区干货传送门

网易游戏 Flink on TiDB 实时数据业务实践

TiDB 社区干货传送门

实践案例

再记一次业务优化

TiDB 社区干货传送门

TiDB 联合索引是如何工作的

TiDB 社区干货传送门

TiDB 在爱奇艺的业务场景及实践

TiDB 社区干货传送门

基于Drainer的TiDB的闪回实现

TiDB 社区干货传送门

忘记root密码的解决办法具体实现步骤

TiDB 社区干货传送门

管理与运维 安装 & 部署

体验更简单的 DM —— v1.0.2

TiDB 社区干货传送门

【精选实践】汽车之家从 SQL Server 到 TiDB 的异构变迁

TiDB 社区干货传送门

【精选实践】TiDB 在丰巢核心支付平台百亿级数据的深度实践

TiDB 社区干货传送门

TiDB慢日志解析源码解读

TiDB 社区干货传送门

同步工具Gravity杂谈

TiDB 社区干货传送门

分布式系统 in 2010s

TiDB 社区干货传送门

实践案例

事务前沿研究丨事务并发控制

TiDB 社区干货传送门

TiDB 底层架构

TiDB 事务源码阅读

TiDB 社区干货传送门

TiDB 中的全局唯一 ID

TiDB 社区干货传送门

【精选实践】网易互娱的数据库选型和 TiDB 应用实践

TiDB 社区干货传送门

北京“TiDB 性能调优专场”活动小组讨论结论

TiDB 社区干货传送门

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