title: boost::shared_future: Read value multiple times
body: <p>I want to use futures in a multithreaded C++ application.
  The value associated to a certain promise should be read by more than one thread.
  I though boost::shared_future is meant to be used for that, but unfortunately I can read the value only once.</p>
  
  <p>How can I read the value multiple times?</p>
  
  <pre><code>boost::promise&lt;std::string&gt; dataProm;
  
  boost::shared_future&lt;std::string&gt; sharedFut1( boost::move(dataProm.get_future()) );
  boost::shared_future&lt;std::string&gt; sharedFut2( sharedFut1 );
  
  dataProm.set_value( std::string("Hello World") );           // (in the producer thread)
  
  std::cout &lt;&lt; "Test1: " &lt;&lt; sharedFut1.get() &lt;&lt; std::endl;    // (in consumer thread 1), result: "Test1: Hello World"
  std::cout &lt;&lt; "Test2: " &lt;&lt; sharedFut2.get() &lt;&lt; std::endl;    // (in consumer thread 2), result: "Test2: "
  std::cout &lt;&lt; "Test3: " &lt;&lt; sharedFut1.get() &lt;&lt; std::endl;    // (in consumer thread 1, again), result: "Test3: "
  </code></pre>
  
  <p>(To support older compilers (MSVC...) I want to use Boost instead of the new C++11 stuff.)</p>
  
  <p>Thanks in advance!</p>