Sollte (in C ++ 11) std :: vector :: resize (size_type) für den standardmäßigen konstruierbaren value_type int [4] funktionieren?

In C ++ 11 gibt es zwei Versionen vonstd::vector::resize():

void resize( size_type count );
void resize( size_type count, const value_type& value);

Ich verstehe (wie in einem der Kommentare zu einer der Antworten auf die Frage vorgeschlagen)diese Frage), dass der erste erfordertvalue_type Standardkonstruierbar sein, während das zweite erfordert, dass es kopierkonstruierbar ist. (Gcc 4.7.0)

using namespace std;
typedef int block[4];
vector<block> A;
static_assert(is_default_constructible<block>::value,";-("); //  does not fire
A.resize(100);                                               //  compiler error

Also war entweder mein Verständnis falsch oder gcc ist fehlerhaft. Welche?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage