1 分享一些C++的历史进程-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分享一些C++的历史进程

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-01-09 14:20 次阅读

在2019年7月,ISO WG21委员会批准了C++ 20的完整草案,11月获得批准,意味着C++ 20将会在今年成为标准。

C++ 软件工程师 Bartek 发布博客,回顾了 C++ 2019 年的发展情况。

Bartek 主要介绍了 2019 年 C++ 特性上的演进、在全球的会议重大进展、相关工具的改进,以及 C++20 新特性的期待。

他总结成三大关注点:

C++20 即将发布

工具,现在编写 C++ 代码更加容易

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

总而言之,我认为未来十年我对C ++持乐观态度。不知道以后会发生什么,但是在接下来的十年中,我相信C ++应该处于相对稳定的位置。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1569

    浏览量

    68500
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73617
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68516
收藏 人收藏

    评论

    相关推荐

    C++新手容易犯的十个编程错误

    简单的总结下 C++ 新手容易犯的一些编程错误,给新人们提供个参考。 1 有些关键字在 cpp 文件中多写了 对于 C++ 类,
    的头像 发表于 11-15 12:42 308次阅读

    文搞懂Linux进程的睡眠和唤醒

    。通过PPID,可以追踪进程的来源,并了解进程之间的关系。 在PCB中记录的进程状态,不过是一些整数,这个整数是多少就代表进程此时处于什么
    发表于 11-04 15:15

    C7000优化C/C++编译器

    德赢Vwin官网 网站提供《C7000优化C/C++编译器.pdf》资料免费下载
    发表于 10-30 09:45 0次下载
    <b class='flag-5'>C</b>7000优化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>编译器

    ModusToolbox 3.2在c代码中包含c++代码的正确步骤是什么?

    使用 ModusToolbox 3.2 我有个用纯 C 语言编写的 XMC4700 项目。 我正在尝试添加一些 C++ 函数,并将其合并到我的原始代码中。 我可以构建独立的 .cpp
    发表于 07-23 08:21

    C++语言基础知识

    德赢Vwin官网 网站提供《C++语言基础知识.pdf》资料免费下载
    发表于 07-19 10:58 7次下载

    C++中实现类似instanceof的方法

    C++有多态与继承,但是很多人开始学习C++,有时候会面临个常见问题,就是如何向下转型,特别是不知道具体类型的时候,这个时候就希望C++ 可以向Java或者Python中有insta
    的头像 发表于 07-18 10:16 572次阅读
    <b class='flag-5'>C++</b>中实现类似instanceof的方法

    如何在FX3 SuperSpeed explorer等电路板上使用openOCD调试C++项目?

    在尝试调试一些可用的 C++ 示例(如 BulkLpAutoCpp)后,我发现任何基于 C++ 的项目在 openocd 下都无法正常调试,反而会停止。 C 项目调试得很好,而且我已经
    发表于 05-23 08:16

    鸿蒙OS开发实例:【Native C++

    使用DevEco Studio创建个Native C++应用。应用采用Native C++模板,实现使用NAPI调用C标准库的功能。使用C
    的头像 发表于 04-14 11:43 2588次阅读
    鸿蒙OS开发实例:【Native <b class='flag-5'>C++</b>】

    使用 MISRA C++:2023® 避免基于范围的 for 循环中的错误

    在前两篇博客中,我们 向您介绍了新的 MISRA C++ 标准 和 C++历史 。在这篇博客中,我们将仔细研究以 C++ 中 for 循环为中心的特定规则。
    的头像 发表于 03-28 13:53 782次阅读
    使用 MISRA <b class='flag-5'>C++</b>:2023® 避免基于范围的 for 循环中的错误

    请问CubeIDE如何支持C++的开发?

    CubeIDE如何支持C++的开发。有没有一些例程。
    发表于 03-25 06:22

    介绍C语言中错误处理和异常处理的一些常用的方法和策略

    C语言是种低级的、静态的、结构化的编程语言,它没有提供像C++或Java等高级语言中的异常处理机制,例如try-catch-finally等。
    的头像 发表于 02-28 14:25 615次阅读

    简单总结下嵌入式C++中常见的错误形式

    对于 C++ 类,一些关键字只要写在 .h 中就好,cpp 中就不用再加上了,比如 virtual、static 等关键字,如果在 cpp 中多写,编译器会报错。
    的头像 发表于 02-23 09:40 494次阅读

    c语言,c++,java,python区别

    C语言、C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言: C语言是种面向过程的编程语言。它具有底层的特性,能
    的头像 发表于 02-05 14:11 2359次阅读

    C++在Linux内核开发中从争议到成熟

    Linux 内核邮件列表中篇已有六年历史的老帖近日再次引发激烈讨论 —— 主题是建议将 Linux 内核的开发语言从 C 转换为更现代的 C++
    的头像 发表于 01-31 14:11 622次阅读
    <b class='flag-5'>C++</b>在Linux内核开发中从争议到成熟

    C++简史:C++是如何开始的

    的 MISRA C++:2023 博客系列的第二部分。 在这篇博客中,我们将深入探讨 C++历史、编程语言多年来的发展历程以及它的下步发展方向。
    的头像 发表于 01-11 09:00 577次阅读
    <b class='flag-5'>C++</b>简史:<b class='flag-5'>C++</b>是如何开始的