title: Why does initialization of array of pairs still need double braces in C++14?
body: <p>With the C++14 standard, the initialization of an <code>std::array</code> can go with single braces (see <a href="http://en.cppreference.com/w/cpp/container/array" rel="noreferrer">http://en.cppreference.com/w/cpp/container/array</a>):</p>
  
  <p>This, however, does not work for an <code>std::array</code> of <code>std::pair</code>. </p>
  
  <p>Why do these work:</p>
  
  <pre><code>std::pair&lt;int, int&gt; p { 1, 2 };
  std::array&lt;int, 3&gt; a {1, 2, 3};
  </code></pre>
  
  <p>but does this <em>not</em> work:</p>
  
  <pre><code>std::array&lt;std::pair&lt;int, int&gt;, 3&gt; b {{1, 11}, {2, 22}, {3, 33}};
  </code></pre>
  
  <p>while this does work again?</p>
  
  <pre><code>std::array&lt;std::pair&lt;int, int&gt;, 3&gt; b {{{1, 11}, {2, 22}, {3, 33}}};
  </code></pre>
  
  <p>Also, for completion, the initialization of a good old array does work with single braces</p>
  
  <pre><code>std::pair&lt;int, int&gt; c[3] {{1, 11}, {2, 22}, {3, 33}};
  </code></pre>