title: optional constructor with initializer_list
body: <p>What is the purpose of this special constructor taking initializer list. Can someone give an example of when this will be useful?</p>
  
  <pre><code>template &lt;class U, class... Args&gt;
  constexpr explicit optional(in_place_t, initializer_list&lt;U&gt; il, Args&amp;&amp;... args);
  </code></pre>
  
  <p>How is the above different from this?</p>
  
  <pre><code>template &lt;class... Args&gt; 
  constexpr explicit optional(in_place_t, Args&amp;&amp;... args); 
  </code></pre>
  
  <p>Ref: <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3793.html#optional.object.ctor" rel="nofollow noreferrer">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3793.html#optional.object.ctor</a></p>
  
  <p>P.S. Not sure whether to use c++14 or c++1z tag. I think there should be tag for c++ techinical specification</p>