title: Why do we need std::nullopt
body: <p>When we can use uniform initialization to easily default construct a <code>std::optional&lt;T&gt;</code>?</p>
  <pre><code>std::optional&lt;T&gt; foo() {
     if (on_error)
        return {};
  
      // ...
  }
  </code></pre>
  <p>Is there any drawback to the above which <code>std::nullopt</code> solves?</p>