GCC 6.1帶來新的C++17特性、完全支持OpenMP、改進了OpenACC
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_exception 、 std::invoke 、 std::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.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!