在2019年7月,ISO WG21委員會批準了C++ 20的完整草案,11月獲得批準,意味著C++ 20將會在今年成為標準。
C++ 軟件工程師 Bartek 發(fā)布博客,回顧了 C++ 2019 年的發(fā)展情況。
Bartek 主要介紹了 2019 年 C++ 特性上的演進、在全球的會議重大進展、相關工具的改進,以及 C++20 新特性的期待。
他總結成三大關注點:
C++20 即將發(fā)布
工具,現(xiàn)在編寫 C++ 代碼更加容易
C++ 在開發(fā)者中的穩(wěn)定地位
從下表可以看出來,在 2019 年,C++ 社區(qū)做了許多事情,像我們關注的新特性方面的進展也有不少,比如 Clang 8.0.0、9.0.0 發(fā)布、VS 2019 發(fā)布與 GCC 9.1 發(fā)布等。
簡單總結起來,從 Clang 5.0、GCC 8.0、Visual Studio 15.7 和 Intel C++ Compiler 19.0.1 開始,所有編譯器都支持 C++ 語言特性。
雖然 C++ 標準庫需要其它支持,特別是并行算法和文件系統(tǒng)之類的要點。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 的討論在今年占據(jù)主導地位,目前特性已經(jīng)凍結,主要特性包括:
模組
協(xié)程
標準庫 Concepts 的概念
范圍
constexpr支持:new/ delete,dynamic_cast,try/ catch,虛擬
constexpr 向量和字符串
計時:日歷、時區(qū)支持
std::format
std::span
std::jthread
目前流行的編譯器已經(jīng)實現(xiàn)了許多 C++20 特性。Bartek 列了一個 C++20 新特性的小表:
工具方面,首先 Visual Studio 對 C++ 提供了眾多新的支持,包括:
使用 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 提供了許多強大的實用程序,比如:
Clang Tidy
Clang-Include-Fixer
AddressSanitizer
MemorySanitizer
代碼分析器 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++ 在開發(fā)者人群中的地位依然穩(wěn)定:
TIOBE 編程語言排行榜中 C++ 排到了第 4 位。
在 StackOverflow 調(diào)查中,C++ 位于 C 上方的第 9 位。
在 GitHub 的調(diào)查中,C++ 排名第 6。
除了這些榜單,Bartek 自己也做了一個簡單的調(diào)查問卷,結果顯示了關于 C++ 的使用情況,包括使用的標準庫版本、工具的選擇與對 C++20 新特性的使用等:
總而言之,我認為未來十年我對C ++持樂觀態(tài)度。不知道以后會發(fā)生什么,但是在接下來的十年中,我相信C ++應該處于相對穩(wěn)定的位置。
-
工程師
+關注
關注
59文章
1566瀏覽量
68448 -
C++
+關注
關注
22文章
2104瀏覽量
73502 -
代碼
+關注
關注
30文章
4752瀏覽量
68364
發(fā)布評論請先 登錄
相關推薦
評論