The following code will not compile in gcc 4.3.2 on Ubuntu 8.10 #include typedef float float4[4]; int main() { std::vector vals; } I get the following compilation error: /usr/include/c++/4.3/bits/stl_construct.h: In function ‘void std::_Destroy(_Tp*) [with _Tp = float [4]]’: /usr/include/c++/4.3/bits/stl_construct.h:103: instantiated from ‘void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = float (*)[4]]’ /usr/include/c++/4.3/bits/stl_construct.h:128: instantiated from ‘void std::_Destroy(_ForwardIterator, _ForwardIterator, std::allocator<_T2>&) [with _ForwardIterator = float (*)[4], _Tp = float [4]]’ /usr/include/c++/4.3/bits/stl_vector.h:300: instantiated from ‘std::vector<_Tp, _Alloc>::~vector() [with _Tp = float [4], _Alloc = std::allocator]’ test_float4.cpp:7: instantiated from here /usr/include/c++/4.3/bits/stl_construct.h:88: error: request for member ‘~float [4]’ in ‘* __pointer’, which is of non-class type ‘float [4]’ The code does compile in gcc 3.4 and gcc 4.1. -- Summary: Unable to use std::vector with typedef'd array types Product: gcc Version: 4.3.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: coleb at eyesopen dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40192