[clang] Claim conformance for CWG466 #87748
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
CWG466 "cv-qualifiers on pseudo-destructor type".
Richard claimed that we don't implement this DR because of one ill-formed example being accepted:
a->CI::~VI();
. This example is testing the behavior of calling a pseudo-destructor via a qualified name, where components of qualified name denote the sameint
type, but with different cv-qualifications.Initially, the following wording from [expr.pseudo] quoted in CWG466 was left intact:
According to this wording, the example is indeed ill-formed.
P1131R2 merged wording for pseudo-destructors into regular destructor wording. Among other things, [expr.pseudo] was removed, and [expr.prim.id.qual]/2 was changed to read:
I believe P1131R2 made the example well-formed.
However, this wording didn't survive P1787R6 "Declarations and where to find them". In that paper I don't see the intent to make the example ill-formed again, so I assume it confirmed status-quo via other wording. My guess the new wording is http://eel.is/c++draft/basic.lookup#qual.general-4.6: