https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67773
--- Comment #4 from Adam Wenocur <awenocur at aol dot com> --- (In reply to Jonathan Wakely from comment #3) > Oh, are you expecting this: > > a_thing = demo(demo::second); > > to have the same behaviour as this: > > a_thing.~demo(); > new(&a_thing) demo(demo::second); > > ? > > That's not how C++ works. I don't expect the same behavior, however I expect the same end result: for the destructor to be called on to be called on the named variable before the move, then for it to be called on the temporary object.