如何在获得未来值后重用boost :: promise对象?

Bak*_*kya 6 c++ boost

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;
}`
Run Code Online (Sandbox Code Playgroud)

我收到了承诺已经满足的错误.如何重用同一个承诺对象?

Mik*_*our 6

将其替换为未使用的承诺:

a = boost::promise<std::string>();
Run Code Online (Sandbox Code Playgroud)