\

看新闻很累?看技术新闻更累?试试下载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

GCC 8.1支持C++2a的部分特性相关推荐

  1. linux gcc延时怎么写,Clang / GCC是否真的支持延迟加载功能?

    如果您 确实经历过 与上述标题相关的事情,您是否愿意对此发表评论?我试图使共享对象在Ubuntu上同时被Clang和GCC延迟加载(我实际上不介意使用哪个编译器),但是它们看起来并没有真正支持任何延迟 ...

  2. gcc/g++ 如何支持c11 / c++11标准编译

    gcc/g++ 如何支持c11 / c++11标准编译 linux中的编译环境默认可能不支持C++11语法,如R"(abc)"原始字符串. 那么如果一定要编译呢? 通过命令man ...

  3. 看FusionInsight Spark如何支持JDBCServer的多实例特性

    摘要:采用多主实例模式的HA方案,不仅可以规避主备切换服务中断的问题,实现服务不中断或少中断,还可以通过横向扩展集群来提高并发能力. 本文分享自华为云社区<FusionInsight Spark ...

  4. 开启协程_软件特攻队|GCC10发布,GCC 11将支持C++20协程功能?

    A coroutine is a function that can suspend execution to be resumed later. 协程是能暂停执行以在之后恢复的函数. 如上所述这是官 ...

  5. linux 查看gcc版本,支持C++11

    查看gcc版本 gcc --version 命令行编译 g++ -std=c++11 -o main main.cpp 查看程序是否编译成功 echo $? 返回0表示编译成功

  6. windows无法配置此无线连接_Kubernetes 1.18功能详解:OIDC发现、Windows节点支持,还有哪些新特性值得期待?...

    Kubernetes 1.18发布,一些对社区产生影响的新特性日渐完善,如 KSA(Kubernetes Service Account) tokens的OIDC发现和对Windows节点的支持.在A ...

  7. Oracle11G数据泵支持,Oracle11gr2数据泵新特性(五)

    Oracle的11gr2版本中,并没有对数据泵做出多大的改动,主要是增加了对原始版本参数的支持,并且去掉了一些小的限制. 这一篇介绍数据泵对版本的支持. 在11.2中,Oracle增加了版本的功能,而 ...

  8. 修改节点大小_重磅前瞻!K8S 1.18即将发布:OIDC发现、Windows节点支持,还有哪些新特性值得期待?...

    根据Kubernetes官方计划,明日Kubernetes 1.18版本即将发布! 一些将对社区产生影响的新特性日渐完善,如 KSA(Kubernetes Service Account) token ...

  9. cryptojs支持rsa加密_新特性解读 | 从 wireshark 看 MySQL 8.0 加密连接

    作者:秦福朗 爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查.热爱 IT,喜欢在互联网里畅游,擅长摄影.厨艺,不会厨艺的 DBA 不是好司机,didi~ 本文来源:原创投稿 *爱可生 ...

最新文章

  1. 用python 脚本控制telnet登录交换机
  2. Python 进阶_生成器 生成器表达式
  3. 图像处理之基础---傅里叶
  4. ps怎么一下选中多个图层_超实用!50个非常实用的PS快捷键命令大全分享
  5. java中远程连接忽略证书_忽略Java中的自签名证书
  6. 计算机操作系统指导书,《计算机操作系统》实验指导书-2015
  7. 深入理解Android View(转)
  8. css实现文本过长时自动添加省略号
  9. android带动画的饼图,Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)...
  10. Leetcode之整数转罗马数字
  11. 从小白创建自己的CSND
  12. 思维模型 SWOT分析
  13. python 支付宝支付 无效根证书_python支付宝支付示例详解
  14. 华为防火墙笔记-报文处理流程
  15. 社保入税+国家支持,企业一大法宝:灵活用工
  16. 马赛克与反马赛克技术
  17. Servlet重定向和转发
  18. 协方差矩阵的齐性检验(接上一篇文章)
  19. JAVA语言规范 JAVA SE 8 - 类型、值和变量
  20. 机器视觉成像中的光偏振技术

热门文章

  1. JavaScript 加减乘除运算
  2. 输入被除数和除数,求商。
  3. 说说你从上家公司离职的原因
  4. 公众号文章里使用svg进行交互
  5. 坐着打游戏也能减肥?1小时=200千卡,竞技游戏、解谜游戏效果更佳
  6. 思维导图软件MindManager 2020中文版
  7. 数据分析案例-足球运动员分析
  8. 深入浅出HTML(针对后端攻城狮)
  9. 如何读取照片的GPS信息?—最好的语言Java实现起来就这么简单【手把手教程+完整代码】
  10. [附源码]Python计算机毕业设计 校园疫情防控系统