void sss(boost::promise<std::string>& res)
{
res.set_value("hi");
}
void yyy(boost::promise<std::string>& res)
{
res.set_value("hello");
}
int main()
{
boost::thread th;
boost::promise<std::string> a;
th = boost::thread(sss, boost::ref(a));
th.join();
std::cout << a.get_future().get() << std::endl;
th = boost::thread(yyy, boost::ref(a));
th.join();
std::cout << a.get_future().get() << std::endl;
}`
我收到承诺已经满足的错误。如何重用同一个承诺对象?
答案 0 :(得分:6)
将其替换为未使用的承诺:
a = boost::promise<std::string>();