gpt4 book ai didi

c++ - 在c++ 20协同例程中co_await的实际实现是什么

转载 作者:行者123 更新时间:2023-12-02 10:33:45 30 4
gpt4 key购买 nike

我正在研究C++ 20中的协程。

我尝试了解co_await的工作方式。

是co_await的任何实现。

读,co_wait似乎具有 future / promise 的行为。

当在线程内部使用co_wait调用函数/对象时,将这样调用

auto promise = std::promise<std::string>();
auto future = promise.get_future();
void sleep()
{
std::cout << future.get() << std::endl;
}

调用notify时,另一个线程将调用类似的内容
void wakeup()
{
promise.set_value("Hello World");
}

最佳答案

例如TYPE a = co_await awaitable(args)
似乎可以通过这种方式进行扩展:

    {
auto && tmp = awaitable(args);
if (!tmp.await_ready())
{
tmp.await_suspend(*this);
}
ret = tmp.await_resume();
};

关于c++ - 在c++ 20协同例程中co_await的实际实现是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61204263/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com