http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56191
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED Target Milestone|--- |4.8.0 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2013-02-03 17:02:59 UTC --- It's the correct behaviour that the destructor affects noexcept detection, because the operand expression creates *and* destroys temporary objects. G++ 4.7 does not apply the rule that destructors are noexcept, so you need to add an explicit noexcept specification on the destructor. GCC 4.8 correctly makes the destructor noexcept as required by C++11.