GCC 6.1带来新的C++17特性、完全支持OpenMP、改进了OpenACC。
6.1版本是GCC一年多来的 第一次重大发布 。据GCC维护者Jakub Jelinek介绍,该版本包含大量的新功能,包括新的C++17特性、完全支持OpenMP以及改进OpenACC支持。
以下是GCC 6.1引入的其中一些最重要的变化:
-std=gnu++14
,而不是 std=gnu++98
; u8
字符字面量和 嵌套命名空间定义 。此外,它还支持 C++ concepts ——一个 尚未 正式包含在C++17中的特性——和 C++事务型内存 。类似地,C++标准库经过了扩展,支持诸如 std::uncaught_exception 、 std::invoke 、 std::shared_mutex 这样的C++17特性; 为了让开发人员能够更轻松地将现有代码移植到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