BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

GCC 6.1带来新的C++17特性、完全支持OpenMP、改进了OpenACC

| 作者 Sergio De Simone 关注 17 他的粉丝 ,译者 谢丽 关注 11 他的粉丝 发布于 2016年5月6日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

GCC 6.1带来新的C++17特性、完全支持OpenMP、改进了OpenACC。

6.1版本是GCC一年多来的第一次重大发布。据GCC维护者Jakub Jelinek介绍,该版本包含大量的新功能,包括新的C++17特性、完全支持OpenMP以及改进OpenACC支持。

以下是GCC 6.1引入的其中一些最重要的变化:

  • C++编译器现在默认为-std=gnu++14,而不是std=gnu++98
  • 改进诊断功能,包括改进位置、位置范围、标识符拼写错误改进建议、修复提示和新的警告;
  • 改进优化器。这影响了程序内优化、程序间优化、链接时间优化和各种目标后台;
  • 扩展后的C++编译器支持预计会在C++17中新增的特性,比如混合表达式u8字符字面量和嵌套命名空间定义。此外,它还支持C++ concepts——一个尚未正式包含在C++17中的特性——和C++事务型内存。类似地,C++标准库经过了扩展,支持诸如std::uncaught_exceptionstd::invokestd::shared_mutex这样的C++17特性;
  • 完全支持Open Multi-Processing(OpenMP) 4.5规范,这是一个为多平台共享内存多道处理而设计的API;
  • 改进对OpenACC 2.0a规范的支持,这是一个由Cray、CAPS、Nvidia和PGI开发的编程标准,旨在简化异构CPU/GPU系统的并发编程。

为了让开发人员能够更轻松地将现有代码移植到GCC 6.1,GCC团队还发布了一份指南,详细描述了可能出现的主要问题,并提供了解决方案。举例来说,这包括:

  • 选择恰当的-std选项,以便使用所需的标准版本;
  • 使用在不同标准版本中有不同行为的特性时发出警告,比如析构函数的noexcept异常规范,或者完全禁止,比如在需要指针的地方使用false,等等。

GCC的最新版本可以从GNU镜像列表中的任何一个镜像下载,在子目录gcc/gcc-6.1.0/下。

查看英文原文GCC 6.1 Brings New C++17 Features, Full Support for OpenMP, Improves OpenACC

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT