title: Reference to initializer_list in noexcept specifier of std::optional
body: <p>I have a question about this <a href="https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional#L823" rel="nofollow noreferrer">code</a>:</p>
  <pre><code>    explicit constexpr
      optional(in_place_t, initializer_list&lt;_Up&gt; __il, _Args&amp;&amp;... __args)
      noexcept(is_nothrow_constructible_v&lt;_Tp, initializer_list&lt;_Up&gt;&amp;,
                          _Args...&gt;)
      : _Base(std::in_place, __il, std::forward&lt;_Args&gt;(__args)...) { }
  </code></pre>
  <p>Why is the reference used here? Initializer list is passed to <code>std::optional</code> as value. I guess it might be related with the fact that it is a named argument in this context, but I am not sure.</p>