title: Why does std::future::wait_for not behave as expected?
body: <pre><code>#include &lt;iostream&gt;
  #include &lt;chrono&gt;
  #include &lt;future&gt;
  
  using namespace std::literals;
  
  int main()
  {
      std::promise&lt;void&gt; prom;
      auto               fut = prom.get_future();
  
      std::cout &lt;&lt; std::boolalpha &lt;&lt; (
           std::future_status::timeout ==
           fut.wait_for(std::chrono::seconds::max())
      );
  }
  </code></pre>
  
  <p>The code should output nothing, because <code>fut.wait_for</code> will wait for a very very long time. However, it outputs <code>true</code> in no time!</p>
  
  <p><strong>Why does <code>std::future::wait_for</code> not behave as expected?</strong></p>