http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52745
Jonathan Rogers changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52745
--- Comment #6 from Paolo Carlini 2012-03-27
23:44:44 UTC ---
Essentially the leeway for the unsafe fallback in the case of Comment #4 is
provided by 23.3.6.5/1: "If an exception is thrown by the move constructor of a
non-CopyInsertable T, the ef
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52745
--- Comment #5 from Paolo Carlini 2012-03-27
23:30:23 UTC ---
That's known, it's a design choice: in that case you are essentially back to
the unsafe 4.6 behavior. Look for 'move_if_noexcept'.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52745
--- Comment #4 from Jonathan Rogers
2012-03-27 23:25:45 UTC ---
(In reply to comment #3)
> Otherwise, if the move constructor by chance throws, the push_back cannot have
> no effects, as required by 23.2.1/10. Actually the requirement holds for a
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52745
--- Comment #3 from Paolo Carlini 2012-03-27
23:21:59 UTC ---
Otherwise, if the move constructor by chance throws, the push_back cannot have
no effects, as required by 23.2.1/10. Actually the requirement holds for all
the containers, but only std
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52745
--- Comment #2 from Jonathan Rogers
2012-03-27 23:13:29 UTC ---
(In reply to comment #1)
> But Stuff' move-constructor isn't known not to throw...
Okay, so it is a new requirement for move constructors to be marked as nothrow
in order for vector
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52745
--- Comment #1 from Paolo Carlini 2012-03-27
23:06:17 UTC ---
But Stuff' move-constructor isn't known not to throw...