C++软件工程师 Bartek 发布博客,回顾了C++ 2019年的发展情况。文章源自联网快讯-https://x1995.cn/7123.html
文章源自联网快讯-https://x1995.cn/7123.html
Bartek主要介绍了2019年C++特性上的演进、在全球的会议重大进展、相关工具的改进,以及C++20新特性的期待,他总结成三大关注点:文章源自联网快讯-https://x1995.cn/7123.html
- C++20即将发布
- 工具,现在编写C++代码更加容易
- C++在开发者中的稳定地位
(需要注意的是,文章提出的只是Bartek的观点,并不代表整个ISO C++委员会的观点。)文章源自联网快讯-https://x1995.cn/7123.html
从下表可以看出来,在2019年,C++社区做了许多事情,像我们关注的新特性方面的进展也有不少,比如Clang 8.0.0、9.0.0发布、VS 2019 发布与 GCC 9.1 发布等。文章源自联网快讯-https://x1995.cn/7123.html
文章源自联网快讯-https://x1995.cn/7123.html
简单总结起来,从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团队添加了更多算法。文章源自联网快讯-https://x1995.cn/7123.html
关于C++20的讨论在今年占据主导地位,目前特性已经冻结,主要特性包括:文章源自联网快讯-https://x1995.cn/7123.html
- 模组
- 协程
- 标准库Concepts的概念
- 范围
- constexpr支持:new/ delete,dynamic_cast,try/ catch,虚拟
- constexpr 向量和字符串
- 计时:日历、时区支持
- std::format
- std::span
- std::jthread
目前流行的编译器已经实现了许多C++20特性。Bartek列了一个C++20新特性的小表:文章源自联网快讯-https://x1995.cn/7123.html
文章源自联网快讯-https://x1995.cn/7123.html
工具方面,首先Visual Studio对C++提供了众多新的支持,包括:文章源自联网快讯-https://x1995.cn/7123.html
- 使用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提供了许多强大的实用程序,比如:文章源自联网快讯-https://x1995.cn/7123.html
- Clang Tidy
- Clang-Include-Fixer
- AddressSanitizer
- MemorySanitizer
代码分析器CppDepend v2019.3增加了对MISRA编码准则的支持,VS 2019支持、QT项目、简化的UI、嵌入式项目支持。文章源自联网快讯-https://x1995.cn/7123.html
PVS-Studio,这是一个使用C/C++和C#编写的程序源代码中的错误检测工具,2019年的一些显着变化包括.NET Core 3和3.1项目分析、MISRA准则支持、40多项新检查、对Java、SonarQube插件的支持。文章源自联网快讯-https://x1995.cn/7123.html
包管理器 Conan 与 Microsoft/vcpkg也都有一些新变化。文章源自联网快讯-https://x1995.cn/7123.html
最后Bartek介绍了2019年C++在开发者人群中的地位依然稳定:文章源自联网快讯-https://x1995.cn/7123.html
- TIOBE编程语言排行榜中 C++排到了第4位。
- 在StackOverflow调查中,C++位于C上方的第9位。
- 在GitHub的调查中,C++排名第6。
除了这些榜单,Bartek自己也做了一个简单的调查问卷,结果显示了关于C++的使用情况,包括使用的标准库版本、工具的选择与对C++20新特性的使用等:文章源自联网快讯-https://x1995.cn/7123.html
文章源自联网快讯-https://x1995.cn/7123.html
评论