GCC 6.1帶來新的C++17特性、完全支持OpenMP、改進了OpenACC

jopen 8年前發布 | 9K 次閱讀 GCC OpenACC OpenMP

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.

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!