2019 年 C++ 的發展

C++ 軟件工程師 Bartek 發佈博客,回顧了 C++ 2019 年的發展狀況。html

https://user-gold-cdn.xitu.io/2020/1/9/16f8ae19978d0ffa?w=1185&h=418&f=png&s=69757

Bartek 主要介紹了 2019 年 C++ 特性上的演進、在全球的會議重大進展、相關工具的改進,以及 C++20 新特性的期待,他總結成三大關注點:算法

  • C++20 即將發佈
  • 工具,如今編寫 C++ 代碼更加容易
  • C++ 在開發者中的穩定地位

(須要注意的是,文章提出的只是 Bartek 的觀點,並不表明整個 ISO C++ 委員會的觀點。)編程

從下表能夠看出來,在 2019 年,C++ 社區作了許多事情,像咱們關注的新特性方面的進展也有很多,好比 Clang 8.0.09.0.0 發佈、VS 2019 發佈與 GCC 9.1 發佈等。編程語言

https://user-gold-cdn.xitu.io/2020/1/9/16f8ae1999ac91be?w=800&h=1044&f=png&s=183506

簡單總結起來,從 Clang 5.0、GCC 8.0、Visual Studio 15.7 和 Intel C++ Compiler 19.0.1 開始,全部編譯器都支持 C++ 語言特性。雖然 C++ 標準庫須要其它支持,特別是並行算法和文件系統之類的要點。std::filesystem須要使用到 GCC 8.1(或更高版本的 GCC 9.1)、Clang 3.9(或更高版本 7.0)和 Visual Studio 2017 15.7。並行算法更新最先在 Visual Studio 2017 15.7 中可用,但隨着以後的更新,MSVC 團隊添加了更多算法。工具

關於 C++20 的討論在今年佔據主導地位,目前特性已經凍結,主要特性包括:ui

  • 模組
  • 協程
  • 標準庫 Concepts 的概念
  • 範圍
  • constexpr支持:newdeletedynamic_casttrycatch,虛擬
  • constexpr 向量和字符串
  • 計時:日曆、時區支持
  • std::format
  • std::span
  • std::jthread

目前流行的編譯器已經實現了許多 C++20 特性。Bartek 列了一個 C++20 新特性的小表:編碼

https://user-gold-cdn.xitu.io/2020/1/9/16f8ae199a09700c?w=1162&h=626&f=png&s=146625

工具方面,首先 Visual Studio 對 C++ 提供了衆多新的支持,包括:spa

  • 使用 Visual Studio IntelliCode 的 AI 輔助代碼補全
  • C++ MSBuild 和 CMake 項目中對 Clang 和 MSVC 的 Clang-Tidy 的支持
  • AddressSanitizer 支持 Windows 上使用 MSVC 編譯的項目
  • 與 CMake 更好地集成
  • Concepts 在 16.3 中可用
  • 全面的to_chars()支持,知足了 C++ 17 的要求
  • 提供了一個名爲 C++ Build Insights 的新工具集合。

Clang/LLVM 提供了許多強大的實用程序,好比:.net

代碼分析器 CppDepend v2019.3 增長了對 MISRA 編碼準則的支持,VS 2019 支持、QT 項目、簡化的 UI、嵌入式項目支持。插件

PVS-Studio,這是一個使用 C/C++ 和 C# 編寫的程序源代碼中的錯誤檢測工具,2019 年的一些顯着變化包括 .NET Core 3 和 3.1 項目分析、MISRA 準則支持、40 多項新檢查、對 Java、SonarQube 插件的支持。

包管理器 Conan 與 Microsoft/vcpkg 也都有一些新變化。

最後 Bartek 介紹了 2019 年 C++ 在開發者人羣中的地位依然穩定:

  • TIOBE 編程語言排行榜中 C++ 排到了第 4 位。
  • 在 StackOverflow 調查中,C++ 位於 C 上方的第 9 位。
  • 在 GitHub 的調查中,C++ 排名第 6。

除了這些榜單,Bartek 本身也作了一個簡單的調查問卷,結果顯示了關於 C++ 的使用狀況,包括使用的標準庫版本、工具的選擇與對 C++20 新特性的使用等:

https://user-gold-cdn.xitu.io/2020/1/9/16f8ae199890f404?w=865&h=958&f=png&s=109259

完整回顧內容查看原博客:

www.bfilipek.com/2019/12/cpp…

本文來源:開源中國

原文連接:www.oschina.net/news/112476…

相關文章
相關標籤/搜索