c++20标准文档高清版PDF免费网盘免费下载

2021-02-01 10:09:44 小八 0点热度 1人阅读

简介:C++20(C++ 编程语言标准2020版)将是C++ 语言一次非常重大的更新,将为这门语言引入大量新特性。早在 9 月份,C++20 国际标准草案获得一致通过,C++ 之父 Bjarne Stroustrup 就表示:“C++ 20是自C++11以

此次更新看 C++20 的 Big Four(四大新特性:概念、范围、协程和模块)以及核心语言(包括一些新的运算符和指示符)。全新的 GCC、Clang 和 EDG 编译器能提供对核心语言的最佳支持。此外,MSVC 和 Apple Clang 编译器也支持许多 C++20 特性。

C++20标准

C++20 核心语言特征。

库方面的情况类似。GCC 在库方面的支持最好,接下来是 Clang 和 MSVC 编译器。

四大新特性

概念(concept)

使用模板进行通用编程的关键思想是定义能通过各种类型(type)使用的函数和类。但是,在实例化模板时经常会出现用错类型的问题,其结果通常是几页难懂的报错信息。

现在概念来了,这个问题可以休矣。概念让你能为模板编写要求,而编译器则可以检查这个要求。概念革新了我们思考和编写通用代码的方式。

范围库(Ranges Library)

范围库是概念的首个客户。它支持的算法满足以下条件:可以直接在容器上操作;无需迭代器指定一个范围,可以宽松地评估;可以组合。简单来说:范围库支持函数模式(functional patterns)。

协程(Coroutines)

协程是广义的函数,能在保持状态的同时暂停或继续。协程通常用来编写事件驱动型应用。事件驱动型应用可以是模拟、游戏、服务器、用户接口或算法。协程也通常被用于协作式多任务(cooperative multitasking)。

我们这里不介绍 C++20 的具体协程,而会介绍编写协程的框架。编写协程的框架由 20 多个函数构成,其中一部分需要你去实现,另一部分则可能需要重写。因此,你可以根据需求调整协程。

模块(Module)

模块部分简单介绍一下就好。模块承诺能够实现:更快的编译时间;宏的隔离;表达代码的逻辑结构;不必再使用头文件(header file);摆脱丑陋的宏方法。