http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52745
--- Comment #6 from Paolo Carlini <paolo.carlini at oracle dot com> 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 effects are unspecified". But really, historically, people simply decided to replace for reallocations unconditional moves with move_if_noexcexpt.