C++20标准(c++标准手册) 官方最新版PDF
大小:6.39MB 时间:2024-12-07
C++20(C++ 编程语言标准2020版)将是C++ 语言一次非常重大的更新,将为这门语言引入大量新特性。c++20标准文档是官方目前最新文件,更新2020年。需要的朋友可下载试试!
此次更新看 C++20 的 Big Four(四大新特性:概念、范围、协程和模块)以及核心语言(包括一些新的运算符和指示符)。
全新的 GCC、Clang 和 EDG 编译器能提供对核心语言的最佳支持。此外,MSVC 和 Apple Clang 编译器也支持许多 C++20 特性。
C++20 核心语言特征。
库方面的情况类似。GCC 在库方面的支持最好,接下来是 Clang 和 MSVC 编译器。
C++20 库特征。
上面的截图仅展示了对应表格的前面一部分,可以看出这些编译器的表现并不是非常令人满意。即使你使用的是全新的编译器,这些编译器仍然不支持很多新特性
四大新特性
概念(concept)
使用模板进行通用编程的关键思想是定义能通过各种类型(type)使用的函数和类。但是,在实例化模板时经常会出现用错类型的问题,其结果通常是几页难懂的报错信息。
现在概念来了,这个问题可以休矣。概念让你能为模板编写要求,而编译器则可以检查这个要求。概念革新了我们思考和编写通用代码的方式。
范围库(Ranges Library)
范围库是概念的首个客户。它支持的算法满足以下条件:
可以直接在容器上操作;无需迭代器指定一个范围;
可以宽松地评估;
可以组合。
简单来说:范围库支持函数模式(functional patterns)。
协程(Coroutines)
协程是广义的函数,能在保持状态的同时暂停或继续。协程通常用来编写事件驱动型应用。事件驱动型应用可以是模拟、游戏、服务器、用户接口或算法。协程也通常被用于协作式多任务(cooperative multitasking)。
我们这里不介绍 C++20 的具体协程,而会介绍编写协程的框架。编写协程的框架由 20 多个函数构成,其中一部分需要你去实现,另一部分则可能需要重写。因此,你可以根据需求调整协程。
模块(Module)
模块部分简单介绍一下就好。模块承诺能够实现:
更快的编译时间;
宏的隔离;
表达代码的逻辑结构;
不必再使用头文件(header file);
摆脱丑陋的宏方法。