OSDN Git Service

2010-01-21 Jonathan Wakely <jwakely.gcc@gmail.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / testsuite / 30_threads / packaged_task / members / reset2.cc
index 69ee9a9..e38d047 100644 (file)
 #include <future>
 #include <testsuite_hooks.h>
 
-int zero() { return 0; }
+int iota() { static int i = 0; return i++; }
 
 void test01()
 {
   bool test __attribute__((unused)) = true;
 
-  std::packaged_task<int()> p1(zero);
-  std::unique_future<int> f1 = p1.get_future();
+  std::packaged_task<int()> p1(iota);
+  std::future<int> f1 = p1.get_future();
 
   p1();
   p1.reset();
 
   VERIFY( static_cast<bool>(p1) );
-  VERIFY( f1.has_value() );
+  VERIFY( f1.get() == 0 );
 
-  std::unique_future<int> f2 = p1.get_future();
-  VERIFY( !f2.is_ready() );
+  std::future<int> f2 = p1.get_future();
+  p1();
+  VERIFY( f2.get() == 1 );
 }
 
 int main()