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 新特性的使用等:

2019 年 C++ 的发展相关推荐

  1. 2019年大数据发展将走向何方

    来源:网络大数据 近日,包括CCF(中国计算机学会)大数据专家委员会.IDC公司(Internet Data Center 互联网数据中心)和Gartner公司等多家国内外知名信息技术研究机构均发布报 ...

  2. vs 选定内容没有属性页_从智能单品,到全屋智能:2019中国智能家居发展白皮书【附82页PPT】...

    2019年,智能家居行业在技术.市场和行业的变革中迎接新的挑战和机遇.一方面,AI.IoT.边缘计算全面赋能智能家居:另一方面,中国的房地产行业正在从上半场的"增量开发",切换到下 ...

  3. CCF大专委2019年大数据发展趋势预测

    CCF大专委2019年大数据发展趋势预测 周涛, 潘柱廷, 程学旗   论文引用格式: 周涛, 潘柱廷, 程学旗. CCF大专委2019年大数据发展趋势预测. 大数据[J], 2019, 5(1):  ...

  4. 【报告分享】2019年中国智能门锁发展与应用白皮书.pdf

    今天分享的报告来自阿里巴巴集团标准化部于2019年9月出品的<2019年中国智能门锁发展与应用白皮书.pdf>,报告包含七大部分:1.前言:2.全球智能门锁行业发展概况:3.中国智能门锁行 ...

  5. 《2019年数据及存储发展研究报告》十大洞察

    10月18日,在IDC中国数字化转型年度盛典上,IDC与浪潮联合发布了<2019年数据及存储发展研究报告>.在深度探讨中国数字化转型现状的基础上,报告提出,2019年中国迈入新数据时代元年 ...

  6. OFweek 2019 智能网联汽车发展高峰论坛在深圆满落幕!

    2019年是自动驾驶进入细分场景落地商用的关键时间点,一方面,车厂正加快L2/L3高级辅助驾驶的量产化,并同时逐步推进L4/L5无人驾驶项目的研发投入:另一方面,在全球车市放缓的背景下,传统主机厂和造 ...

  7. 一地鸡毛 OR 绝地反击,2019年区块链发展指南

    如果盘点2018年IT技术领域谁是"爆款流量",那一定有个席位是属于区块链的,不仅经历了巨头.小白纷纷入场的光辉岁月,也经历了加密货币暴跌,争先退场的一地鸡毛.而当时间行进到201 ...

  8. 回望2019,互联网产品发展只剩焦虑?

    人口红利将尽,资本寒冬到来. 2019年,是互联网最为焦虑的一年,裁员.倒闭.获客成本剧增.业务收缩等风暴席卷互联网. 越来越多企业面临着流量见底及流量成本越来越高的困境,企业纷纷转向下沉市场,试图寻 ...

  9. 百度、腾讯、滴滴,如何看2019智能网联汽车发展 | 2019互联网岳麓峰会

    *2019互联网岳麓峰会现场 在"2019互联网岳麓峰会"上,智能驾驶依旧是各方热议话题.在百度李彦宏.腾讯苏奎锋和滴滴贾兆寅眼里,2019智能汽车将会如何发展?自动驾驶到智慧城市 ...

最新文章

  1. SAP Retail系统门店主数据维护思路
  2. php 静态类在worker,GatewayWorker的Events.php中调用Worker::runAll()出现异常
  3. [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(前篇)...
  4. 【论文阅读和实现】On Spectral Clustering: Analysis and an algorithm【Python实现】
  5. php实现页面雪花效果,JavaScript_使用javascript实现雪花飘落的效果,看了javascript网页特效实例大全 - phpStudy...
  6. 【机器学习】从Few-shot Learning再次认识机器学习
  7. python软件开发规范
  8. 第九篇:Spring Boot整合Spring Data JPA_入门试炼03
  9. php有关卡的消消乐源码,查看“宝可消消乐/活动关卡/得分挑战关卡/超梦”的源代码...
  10. 关于开发入门的一些事儿
  11. 特斯拉将美国政府告了:要求停止对华关税并退款!
  12. 【紫书第六章】二叉树、欧拉图基本概念与性质
  13. python-devel找不到,可以试试python-dev
  14. JAVA中如何产生透明的VolatileImage
  15. 【AllenNLP入门教程】: 2、基于Allennlp2.4版本的一些使用技巧
  16. 嵌入式软件工程师面试遇到的经典题目
  17. win10增加图片查看器
  18. Ruff Chain 将亮相新加坡WDAS 2018世界数字资产峰会
  19. 解决Attribute url invalid for tag page according to TLD的问题
  20. 公务员考试要求及流程梳理

热门文章

  1. dell服务器630虚拟盘初始化,DELL服务器配置Raid的步骤
  2. gis根据行政区计算栅格数据计算_Java中根据半径计算圆的周长和面积
  3. python中的sys的概念和作用_Python(os和sys)理解
  4. 部署laravel报错:No supported encrypter found. The cipher and / or key length are invalid.
  5. 【一篇文章搞懂】dockerfile构建镜像的命令
  6. java课程设计总结与思考,你掌握了多少?
  7. 【深度学习】医学图像处理之视杯视盘分割调研分析
  8. 【机器学习入门到精通系列】无监督学习之K-means
  9. 机器学习(MACHINE LEARNING)MATLAB模拟排队论
  10. 查询选修c语言课程的学生学号和姓名,数据库实验(学生信息表)