title: c++ initializer lists and variadic templates
body: <p>I wanted to create an array:</p>
  
  <pre><code>template &lt; typename T, typename ... A &gt; struct a {
    T x [1 + sizeof... (A)];
    a () = default;
    a (T &amp;&amp; t, A &amp;&amp; ... y) : x { t, y... } {}
  };
  
  int main () {
    a &lt; int, int &gt; p { 1, 1 }; // ok
    a &lt; a &lt; int, int &gt;, a &lt; int, int &gt; &gt; q { { 1, 1 }, { 3, 3 } }; // error: bad array initializer
  }
  </code></pre>
  
  <p>Why doesn't it compile? (tested with g++ 4.6)</p>