C 1z Coroutines语言功能?

前端之家收集整理的这篇文章主要介绍了C 1z Coroutines语言功能?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么协程(现在在C 1z的最新草案中)被实现为核心语言功能(花哨的关键字和所有)而不是库扩展?

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

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

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

解决方法

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

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

猜你在找的C&C++相关文章