C++ 软件工程师 Bartek 发布博客,回忆了 C++ 2019 年的开展状况。
Bartek 主要引见了 2019 年 C++ 特性上的演进、在全球的会议严重停顿、相关工具的改良,以及 C++20 新特性的等候,他总结成三大关注点:
C++20 行将发布
工具,如今编写 C++ 代码愈加容易
C++ 在开发者中的波动位置
(需求留意的是,文章提出的只是 Bartek 的观念,并不代表整个 ISO C++ 委员会的观念。)
从下表可以看出来,在 2019 年,C++ 社区做了许多事情,像我们关注的新特性方面的停顿也有不少,比如 Clang 8.0.0、9.0.0发布、VS 2019 发布与 GCC 9.1 发布等。
复杂总结起来,从 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 的讨论在往年占据主导位置,目前特性曾经解冻,主要特性包括:
模组
协程
标准库 Concepts 的概念
范围
constexpr支持:new/ delete,dynamic_cast,try/ catch,虚拟
constexpr 向量和字符串
计时:日历、时区支持
std::format
std::span
std::jthread
目前盛行的编译器曾经完成了许多 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++ 在开发者人群中的位置依然波动:
TIOBE 编程言语排行榜中 C++ 排到了第 4 位。
在 StackOverflow 调查中,C++ 位于 C 上方的第 9 位。
在 GitHub 的调查中,C++ 排名第 6。
除了这些榜单,Bartek 本人也做了一个复杂的调查问卷,结果显示了关于 C++ 的运用状况,包括运用的标准库版本、工具的选择与对 C++20 新特性的运用等:
残缺回忆内容查看原博客:
https://www.bfilipek.com/2019/12/cpp-status-2019.html
【编辑引荐】
真工程师:20块钱做了张「名片」,可以跑Linux和Python
30 年前的圣诞节,Python 序章被谱写
Python兴趣打怪:60秒学会一个例子,147段代码助你从入门到巨匠
5 个越早知道越好的 Python 特性
一行代码简化Python异常信息:错误明晰指出,排版繁复美观
(责任编辑:admin)