Rationale: Improves template argument deduction failure
. Effect on original feature:
A valid C++ 2003 program that uses one of these special member functions in a
context where the definition is not required (e.g., in an expression that is
not potentially evaluated) becomes ill-formed
. [class.dtor] (destructors)
Change: User-declared destructors have an implicit exception specification
. Rationale: Clarification of destructor requirements
. Effect on original feature:
Valid C++ 2003 code may execute differently in this International Standard
. In
particular, destructors that throw exceptions will call
std::terminate
(without calling
std::unexpected) if their exception specification is
non-throwing
.