------- Comment #9 from paolo dot carlini at oracle dot com 2009-02-09 17:59 ------- (In reply to comment #8) > At no point was vector<Tp>::resize() ever instantiatable with a > non-DefaultConstructible Tp, even with the old size_type-only member > function. It would have failed on value_type() in the definition body. > That doesn't make it any less conforming, does it?
I do not understand what you are saying: a std::vector strictly following the current, C++03 specifications, can be explicitly instantiated for a non-DefaultConstructible Tp. And indeed, this is what happens with current v3, and was *not* happening back in the 4.0 time. In C++0x, thanks to Concepts, that will be also true, it will be possible to explicitly instantiate std::vector for a non-DefaultConstructible Tp and, plus, it will possible to have 2 separate, optimized, overloads. I don't see any other option. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39136