Is there a standard container that has the same general API as vector<T>
but that populates new locations via direct default construction?
Background:
I have a type that disallows copying but has a default constructor and what I really want to do is this:
vector<NoCopy> bag(some_size);
// use bag[i]'s
return; // bag & contents get correctly cleaned up.
However, this doesn't work because vector<T>(int)
is implemented in terms of default constructing an object and then copying it into each of the new locations.
Edit: Not C++0xB (a.k.a. C++11)