GCC 8.1支持C++2a的部分特性
\
看新闻很累?看技术新闻更累?试试下载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_cast
、const_cast
或reinterpret_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
GCC 8.1支持C++2a的部分特性相关推荐
- linux gcc延时怎么写,Clang / GCC是否真的支持延迟加载功能?
如果您 确实经历过 与上述标题相关的事情,您是否愿意对此发表评论?我试图使共享对象在Ubuntu上同时被Clang和GCC延迟加载(我实际上不介意使用哪个编译器),但是它们看起来并没有真正支持任何延迟 ...
- gcc/g++ 如何支持c11 / c++11标准编译
gcc/g++ 如何支持c11 / c++11标准编译 linux中的编译环境默认可能不支持C++11语法,如R"(abc)"原始字符串. 那么如果一定要编译呢? 通过命令man ...
- 看FusionInsight Spark如何支持JDBCServer的多实例特性
摘要:采用多主实例模式的HA方案,不仅可以规避主备切换服务中断的问题,实现服务不中断或少中断,还可以通过横向扩展集群来提高并发能力. 本文分享自华为云社区<FusionInsight Spark ...
- 开启协程_软件特攻队|GCC10发布,GCC 11将支持C++20协程功能?
A coroutine is a function that can suspend execution to be resumed later. 协程是能暂停执行以在之后恢复的函数. 如上所述这是官 ...
- linux 查看gcc版本,支持C++11
查看gcc版本 gcc --version 命令行编译 g++ -std=c++11 -o main main.cpp 查看程序是否编译成功 echo $? 返回0表示编译成功
- windows无法配置此无线连接_Kubernetes 1.18功能详解:OIDC发现、Windows节点支持,还有哪些新特性值得期待?...
Kubernetes 1.18发布,一些对社区产生影响的新特性日渐完善,如 KSA(Kubernetes Service Account) tokens的OIDC发现和对Windows节点的支持.在A ...
- Oracle11G数据泵支持,Oracle11gr2数据泵新特性(五)
Oracle的11gr2版本中,并没有对数据泵做出多大的改动,主要是增加了对原始版本参数的支持,并且去掉了一些小的限制. 这一篇介绍数据泵对版本的支持. 在11.2中,Oracle增加了版本的功能,而 ...
- 修改节点大小_重磅前瞻!K8S 1.18即将发布:OIDC发现、Windows节点支持,还有哪些新特性值得期待?...
根据Kubernetes官方计划,明日Kubernetes 1.18版本即将发布! 一些将对社区产生影响的新特性日渐完善,如 KSA(Kubernetes Service Account) token ...
- cryptojs支持rsa加密_新特性解读 | 从 wireshark 看 MySQL 8.0 加密连接
作者:秦福朗 爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查.热爱 IT,喜欢在互联网里畅游,擅长摄影.厨艺,不会厨艺的 DBA 不是好司机,didi~ 本文来源:原创投稿 *爱可生 ...
最新文章
- 用python 脚本控制telnet登录交换机
- Python 进阶_生成器 生成器表达式
- 图像处理之基础---傅里叶
- ps怎么一下选中多个图层_超实用!50个非常实用的PS快捷键命令大全分享
- java中远程连接忽略证书_忽略Java中的自签名证书
- 计算机操作系统指导书,《计算机操作系统》实验指导书-2015
- 深入理解Android View(转)
- css实现文本过长时自动添加省略号
- android带动画的饼图,Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)...
- Leetcode之整数转罗马数字
- 从小白创建自己的CSND
- 思维模型 SWOT分析
- python 支付宝支付 无效根证书_python支付宝支付示例详解
- 华为防火墙笔记-报文处理流程
- 社保入税+国家支持,企业一大法宝:灵活用工
- 马赛克与反马赛克技术
- Servlet重定向和转发
- 协方差矩阵的齐性检验(接上一篇文章)
- JAVA语言规范 JAVA SE 8 - 类型、值和变量
- 机器视觉成像中的光偏振技术