title: 0 as a timeout in std::condition_variable::wait_for
body: <p>For instance I have next code:</p>
  
  <pre><code>void waitForResponse(const std::optional&lt;int64_t&gt;&amp; ms){
      std::unique_lock lk{_mtx};
      _cv.wait_for(lk, std::chrono::milliseconds{ms ? *ms : 0}, []() {
              return someCondition;
          }
  }
  </code></pre>
  
  <p>Is it specified in standard if I pass <code>0</code> as a duration argument? Is it equal to the next code?:</p>
  
  <pre><code>void waitForResponse(const std::optional&lt;int64_t&gt;&amp; ms){
      std::unique_lock lk{_mtx};
      _cv.wait_for(lk, []() {
              return someCondition;
          }
  }
  </code></pre>
  
  <p>Is there any overhead?</p>