title: Why isn't `std::initializer_list` defined as a literal type?
body: <p>This is a follow-up of this question: <a href="https://stackoverflow.com/questions/16063123/is-it-legal-to-declare-a-constexpr-initializer-list-object">Is it legal to declare a constexpr initializer_list object?</a>.</p>
  
  <p>Since C++14, the <code>std::initializer_list</code> class has all of its methods marked with <code>constexpr</code>. It seems natural to be able to initialize an instance by doing 
  <code>constexpr std::initializer_list&lt;int&gt; list = {1, 2, 3};</code> 
  but Clang 3.5 complains about <code>list</code> not being initialized by a constant expression. 
  <a href="https://stackoverflow.com/questions/16063123/is-it-legal-to-declare-a-constexpr-initializer-list-object#comment43416424_16067393">As dyp pointed out in a comment</a>, any requirement for <code>std::initializer_list</code> to be a literal type seem to have vanished from the specs.</p>
  
  <p>What's the point of having a class fully defined as constexpr if we can't even initialize it as such? Is it an oversight in the standard and will get fixed in the future?</p>