title: Should (in C++11) std::vector::resize(size_type) work for the default constructible value_type int[4]?
body: <p>In C++11, there are two versions of <code>std::vector::resize()</code>:</p>
  
  <pre><code>void resize( size_type count );
  void resize( size_type count, const value_type&amp; value);
  </code></pre>
  
  <p>I understand (as suggested by one of the comments to one of the answers to <a href="https://stackoverflow.com/questions/12184828/compiler-error-with-c-stdvector-of-array">this question</a>) that the first requires <code>value_type</code> to be default constructible, while the second requires it to be copy constructible. However, (gcc 4.7.0)</p>
  
  <pre><code>using namespace std;
  typedef int block[4];
  vector&lt;block&gt; A;
  static_assert(is_default_constructible&lt;block&gt;::value,";-("); //  does not fire
  A.resize(100);                                               //  compiler error
  </code></pre>
  
  <p>So either my understanding was wrong or gcc is buggy. Which?</p>