http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55043



--- Comment #19 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-10-24 
18:51:24 UTC ---

Essentially memory allocation is needed because that is the "simplest" state

for such containers, what the default constructor also does in other terms.

Given that the moved from container must remain in a sane state and all the

normal operations must still be well defined, I don't think we can have

something "simpler", thus not allocating memory, than the default constructed

state. We can of course in principle redesign the affected containers to have a

different, simpler, default (it's already the case for containers like vector

or list, of course) but that isn't that easy to do, AFAICS. That said, I'm not

convinced this is the *real* issue, because: 1- I think a move-constructor not

noexcept is still conforming; 2- As we often say when teaching these things,

the std:: containers are just *examples* from the generic programming point of

view, and we should anyway be ready for user code with throwing move

constructors...

Reply via email to