从著名的C++协同器库(搜索“不要允许在生成器协同线内使用co_await”)。在源文件中,从我自己的实验中,我知道使用co_yield的协同线不能同时使用co_await。由于使用co_yield的生成器必须是同步的,那么,与简单的有状态lambda相比,使用co_yield有什么好处?/ co_yield way
for (auto i :
我一直在使用c++20协同器,我偶然发现了问题,因为lambda捕获的生命周期并没有扩展到整个协同过程。我想知道捕获什么是安全的,因为我必须将捕获的所有内容复制到新的对象中,如下所示: // need to copy into a newobject to safely reference for the lifetime of the corou