Я изучаю сопрограммы на C ++ 20.
Пытаюсь понять, как работает co_await.
Есть какая-то реализация co_await.
Читая, co_wait, похоже, ведет себя как future / prom.
Когда функция / объект вызывается с co_wait внутри потока, вызывается что-то вроде этого
auto promise = std::promise<std::string>();
auto future = promise.get_future();
void sleep()
{
std::cout << future.get() << std::endl;
}
Когда вызывается уведомление, другой поток вызывает что-то вроде этого
void wakeup()
{
promise.set_value("Hello World");
}