Created on 2014-03-31.00:00:00 last changed 27 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 |