Passing a C array to a struct initializer in a vector brace initialization
<p>First, I have seen <a href="https://stackoverflow.com/questions/18355533/initializing-struct-vector-with-brace-enclosed-initializer-list">this question</a>.</p>

<p>I'm curious why the following does not work:</p>

<pre><code>float vcolor[4]{color.getX(),color.getY(),color.getZ(),1.0f};
float v1[3]{from.getX(),from.getY(),from.getZ()};
float v2[3]{to.getX(),to.getY(),to.getZ()};
std::vector&lt;Vertex&gt; v={{v1,vcolor},{v2,vcolor}};
</code></pre>

<blockquote>
  <p>No matching constructor for initialization of
  'std::vector'</p>
</blockquote>

<p>But instead passing the elements directly works fine (as noted in the other question):</p>

<pre><code>std::vector&lt;Vertex&gt; v={
    {{from.getX(),from.getY(),from.getZ()},
        {color.getX(),color.getY(),color.getZ(),1.0f}},
    {{to.getX(),to.getY(),to.getZ()},
        {color.getX(),color.getY(),color.getZ(),1.0f}}};
</code></pre>

<p>Shouldn't the former also be possible?</p>