Следующая декларация проходит проверку компиляции:
int arr[3];
vector<int[3]> vec; // ok !!
При попытке использовать vec
практически как,
vec.push_back(arr);
это приводит ко многим ошибкам вроде:
/usr/include/c++/4.6/ext/new_allocator.h:108:9: error: ISO C++ forbids initialization in array new [-fpermissive]
/usr/include/c++/4.6/bits/vector.tcc:314:4: error: invalid array assignment
/usr/include/c++/4.6/ext/new_allocator.h:118:30: error: request for member ‘~int [3]’ in ‘* __p’, which is of non-class type ‘int [3]’
Кроме того, vec
не push_back()
также int*
.
Что здесь не так?Решается ли такая проблема в C ++ 11?