GrowableArray assumes that all data has a default ctr, see line 491:
for ( ; i < this->_capacity; i++) ::new ((void*)&newData[i]) E();
This is an unnecessary limitation which you hit when you try to limit your data structure to valid states.
for ( ; i < this->_capacity; i++) ::new ((void*)&newData[i]) E();
This is an unnecessary limitation which you hit when you try to limit your data structure to valid states.