Deve (em C ++ 11) std :: vector :: resize (size_type) funcionar para o construtível default value_type int [4]?
Em C ++ 11, existem duas versões destd::vector::resize()
:
void resize( size_type count );
void resize( size_type count, const value_type& value);
Eu entendo (como sugerido por um dos comentários para uma das respostas paraessa questão) que o primeiro requervalue_type
para ser construtível por padrão, enquanto o segundo exige que seja construtível para cópia. No entanto, (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
Então, ou meu entendimento estava errado ou o gcc está com bugs. Qual?