如何在获得未来值后重用 boost::p romise 对象

How to reuse boost::promise object after getting its future value?

本文关键字:boost 对象 romise 未来      更新时间:2023-10-16
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;
}`

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

将其替换为未使用的 promise:

a = boost::promise<std::string>();