]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/thread/test/sync/futures/promise/set_rvalue_pass.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / thread / test / sync / futures / promise / set_rvalue_pass.cpp
index 1aa3bb91467a61ff7fe64c59cf2be269b4b3abaf..63260d7268ce031e41fc02cf794ab1241da76b5f 100644 (file)
@@ -118,6 +118,28 @@ int main()
       BOOST_TEST(false);
     }
   }
+  {
+    typedef A T;
+    T i;
+    boost::promise<T> p;
+    boost::future<T> f = p.get_future();
+    try
+    {
+      p.set_value_deferred(boost::move(i));
+      BOOST_TEST(!f.is_ready());
+      p.notify_deferred();
+
+      BOOST_TEST(false);
+    }
+    catch (int j)
+    {
+      BOOST_TEST(j == 9);
+    }
+    catch (...)
+    {
+      BOOST_TEST(false);
+    }
+  }
   {
     typedef A T;
     T i;
@@ -137,6 +159,25 @@ int main()
       BOOST_TEST(false);
     }
   }
+  {
+    typedef A T;
+    T i;
+    boost::promise<T> p;
+    boost::future<T> f = p.get_future();
+    try
+    {
+      p.set_value_deferred((T()));
+      BOOST_TEST(false);
+    }
+    catch (int j)
+    {
+      BOOST_TEST(j == 9);
+    }
+    catch (...)
+    {
+      BOOST_TEST(false);
+    }
+  }
   {
     typedef A T;
     T i(3);