Yes there is something in the standard stopping using arrays Using Draft C++98 Standard
Section 23 Containers
The type of objects stored in these components must meet the requirements of CopyConstructible types (20.1.3), and the additional requirements of Assignabletypes.
where components are various containers
20.1.3 includes the requirement that the type has to have a destructor.
I think of it as a vector has to copy allocate and delete elements. How does C++ know to copy or delete a char[] ?