Какова фактическая реализация co_await в c ++ 20 подпрограмме - PullRequest
1 голос
/ 14 апреля 2020

Я изучаю сопрограммы в C ++ 20.

Я пытаюсь понять, как работает co_await.

Является ли любая реализация co_await.

Чтение, кажется, что co_wait имеет поведение будущее / обещание.

Когда функция / объект вызывается с 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");
}
...