C 1z Coroutines语言功能?

为什么协程(现在在C 1z的最新草案中)被实现为核心语言功能(花哨的关键字和所有)而不是库扩展?

已经存在一些针对它们的实现(Boost.Coroutine等),其中一些可以与我所阅读的平台无关.为什么委员会决定将其融入核心语言本身?

我不是说他们不应该,但是Bjarne Stroustrup自己在一些谈话中提到过(不知道哪一个),应该尽可能在图书馆中实现新功能,而不是触及核心语言.

那么有充分的理由吗?有什么好处?

解决方法

虽然有协同程序库实现,但这些协议往往有特定的限制.例如,库协议实现无法检测协程挂起时需要维护哪些变量.可以解决这种需要,例如,通过以某种形式使用过的变量.但是,当协同程序应尽可能地像正常函数一样时,应该可以定义局部变量.

我不认为Boost协同程序的任何实现者认为他们各自的库接口是理想的.虽然它是目前语言中可以实现的最佳选择,但总体使用可以得到改善.

相关文章

/** C+⬑ * 默认成员函数 原来C++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录<future>future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...