#include <iostream>
#include <string>
#include <thread>
#include <future>
int main()
{
auto pms = std::promise<std::string>();
auto ftr = pms.get_future();
std::thread([&](){pms.set_value("hello world");});
ftr.wait();
std::cout << ftr.get() << std::endl;
return 0;
}
Согласно this link, std::future::wait
блоки, пока результат не станет доклада доступен.
Почему не будущее :: Wait() блок
Однако, код, указанный выше, не может печатать что-либо. Очевидно, что основная нить закончилась до того, как закончилась нить pms.set_value
.
Почему не ftr.wait()
блок?
Я хотел бы предложить вам взглянуть на станд :: асинхронной – LeDYoM