Files
2025-10-25 03:02:53 +03:00

53 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[diff.cpp03.class]
# Annex C (informative) Compatibility [[diff]](./#diff)
## C.6 C++ and ISO C++ 2003 [[diff.cpp03]](diff.cpp03#class)
### C.6.5 [[class]](class "11Classes"): classes [diff.cpp03.class]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L2345)
**Affected subclauses:** [[class.default.ctor]](class.default.ctor), [[class.dtor]](class.dtor), [[class.copy.ctor]](class.copy.ctor), and [[class.copy.assign]](class.copy.assign)
**Change:** Implicitly-declared special member functions are defined as deleted
when the implicit definition would have been ill-formed[.](#1.sentence-1)
**Rationale:** Improves template argument deduction failure[.](#1.sentence-2)
**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[.](#1.sentence-3)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L2356)
**Affected subclause:** [[class.dtor]](class.dtor)
**Change:** User-declared destructors have an implicit exception specification[.](#2.sentence-1)
**Rationale:** Clarification of destructor requirements[.](#2.sentence-2)
**Effect on original feature:** Valid C++ 2003 code may execute differently in this revision of C++[.](#2.sentence-3)
In
particular, destructors that throw exceptions will call std::terminate (without calling std::unexpected) if their exception specification is
non-throwing[.](#2.sentence-4)