Created on 2014-03-31.00:00:00 last changed 38 months ago
[Accepted at the November, 2020 meeting as part of paper P1787R6 and moved to DR at the February, 2021 meeting.]
According to _N4868_.6.5.6 [basic.lookup.classref] paragraph 3,
If the unqualified-id is ~type-name, the type-name is looked up in the context of the entire postfix-expression. If the type T of the object expression is of a class type C, the type-name is also looked up in the scope of class C. At least one of the lookups shall find a name that refers to (possibly cv-qualified) T.
This would apply to an example like
namespace K {
template <typename T, typename U = char> struct A { };
A<short> *a;
}
template <typename T> using A = K::A<short, T>;
int main() {
K::a->~A<char>();
}
Current implementations, however, only apply the dual lookup when the type-name is not a template-id. The specification should be changed to reflect current practice.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-08-19 07:54:33 | admin | set | status: drwp -> cd6 |
| 2021-02-24 00:00:00 | admin | set | status: accepted -> drwp |
| 2020-12-15 00:00:00 | admin | set | status: drafting -> accepted |
| 2014-07-07 00:00:00 | admin | set | status: open -> drafting |
| 2014-03-31 00:00:00 | admin | create | |