新版kotlin协程
C ++ 20是古老的通用系统编程语言的最新版本,已被国际标准化组织(ISO)认为是功能完善的,其功能包括模块,概念和协程。
C ++创始人Bjarne Stroustrup说,一旦开发人员学习了C ++概念并克服了“牙齿上的烦恼”,这两个概念和模块都将简化C ++的使用。
模块使程序员可以指定和使用模块化组件,因此C ++开发人员最终可以摆脱对程序编写的复杂,易于出错的预处理的使用。
概念允许程序员在模板的参数上指定模板的要求。 通过使模板的接口精确,可以满足模板支持通用编程的意图。 Stroustrup说,代码质量将得到改善,模板将更易于使用。
协程是程序组件,用于泛化用于非抢先式多任务处理的子例程,从而使执行被暂停和恢复。 协同程序适合于事件循环和迭代器之类的任务,并通过扩展启用了协程,这些扩展包括新的语法形式和对语言中现有语义的修改。
C ++ 20中的其他新功能包括:
- 一个C ++ 20同步库,为C ++的低级并发编程支持带来了障碍,闩锁和其他一些修改。 该库旨在供专业程序员使用,是为更好地支持现代硬件上的细粒度控制提供支持的一部分。
- 各种编译时计算改进。
- 范围,提供用于处理元素范围的组件,包括各种视图适配器。
- 合同,指定功能的前提条件和条件。
- 功能测试宏,定义一组与C ++ 11或更高版本中引入的语言和库功能相对应的宏。
- 查找中的预先计算的哈希值,使用成员函数扩展了无序容器的接口,成员函数具有一个附加参数,该参数为要查询的值采用预先计算的哈希值。 此建议的基本原理是,在业务场景中,经常必须一次在多个容器中搜索同一关键字。 到目前为止,这是一个昂贵的提议,迫使每次查找都要重新计算哈希值。
- 扩展语句,可对元组,数组,类,参数包或范围的每个元素进行语句的编译时重复。
-
std::optional
单子运算。std::optional
是一种重要的词汇类型,它的一些用法很冗长,可以从允许进行功能组合的操作中受益。 - 隐式创建用于低级对象操作的对象,其中,根据需要在新分配的存储中按需创建足够琐碎类型的对象,以赋予程序定义的行为。
ISO有望在2020年正式采用C ++20。但是,许多C ++ 20功能已经在实验或生产中使用,例如GCC(GNU编译器集合)中的概念以及Clang C ++中的协程(Coroutines ) ,Stroustrup说。 该语言本身将在今年40岁,并于1979年秋季以Classes的形式在C中首次亮相。该名称在1984年更改为C ++。
新版kotlin协程