You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[dcl.fct.def.delete] Make terms cover semantic deletedness
The definition of "deleted definition" in [dcl.fct.def.delete] is not
written in the form of a definition and neither is the definition of
"deleted function". Most problematically, these definitions encompass
only the syntactic case of explicitly deleting a function but the terms
are used where semantic deletedness is meant.
Applying the syntactic interpretation of the definition could lead to
the conclusion that the following is ill-formed:
```cpp
struct A { ~A() = delete; };
struct B {
A a;
virtual ~B() = default;
};
struct C : B { virtual ~C() = delete; };
```
This patch changes the definitions to cover semantic deletion.
**Drafting notes:**
- It appears that uses of "deleted definition" in the text is usually
refer to physical definitions (but not necessarily to explicit
deletions).
- The increased verbosity is somewhat necessary to meet the ideal that
uses of a term may be replaced with the definition of the term with
minimal adjustments.
0 commit comments