title: Nested initializer lists don't construct the nested arrays as I would expect
body: <p>I have the following code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;vector&gt;
  #include &lt;array&gt;
  
  using namespace std;
  
  int main()
  {
      std::vector&lt;std::array&lt;std::array&lt;double, 3&gt;, 2&gt;&gt; arr =
      {
        {
          {2, 1, 0},
          {1, 1, 0}
        }
      };
  
      cout &lt;&lt; "Array size " &lt;&lt; arr.size() &lt;&lt; endl;
  }
  </code></pre>
  
  <p>I would expect this to return a vector of size 1, containing the 2d array that looks like this:</p>
  
  <pre><code>[
    [[2, 1, 0], [1, 1, 0]]
  ]
  </code></pre>
  
  <p>However it returns a vector of size two, where the two arrays look like this:</p>
  
  <pre><code>[
    [[2, 1, 0], [0, 0, 0]],
    [[1, 1, 0], [0, 0, 0]]
  ]
  </code></pre>
  
  <p>It seems to me like it should be able to construct the two inner size 3 arrays and then use that to construct the single size 2 array to put that into the vector.</p>
  
  <p>I am very confused. Any help explaining why this doesn't behave as I expect would be wonderful.</p>
  
  <p>Tested in the Visual Studio Online Compiler, and Clang.</p>