Created on 2015-06-16.00:00:00 last changed 81 months ago
[Moved to DR at the November, 2016 meeting.]
Proposed resolution (March, 2016):
Change 13.8.3.2 [temp.dep.type] bullet 9.7 as follows:
A type is dependent if it is
...
a simple-template-id in which either the template name is a template parameter or any of the template arguments is a dependent type or an expression that is type-dependent or value-dependent or is a pack expansion [Note: This includes an injected-class-name (Clause 11 [class]) of a class template used without a template-argument-list. —end note], or
denoted by...
Proposed resolution (February, 2016) [SUPERSEDED]:
Change 13.8.3.2 [temp.dep.type] bullet 9.7 as follows:
A type is dependent if it is
...
an injected-type-name ( Clause 11 [class]) of a class template or a simple-template-id in which either the template name is a template parameter or any of the template arguments is a dependent type or an expression that is type-dependent or value-dependent or is a pack expansion, or
denoted by...
There does not appear to be a rule that causes p or this to be dependent in the following example:
template <typename T> struct A { void foo() { A* p = 0; bar(p); // will be found by ADL at the point of instantiation bar(this); // same here } }; void bar(...); int main() { A<int> a; a.foo(); }
History | |||
---|---|---|---|
Date | User | Action | Args |
2018-02-27 00:00:00 | admin | set | messages: + msg6168 |
2018-02-27 00:00:00 | admin | set | status: dr -> c++17 |
2017-02-06 00:00:00 | admin | set | messages: + msg6093 |
2017-02-06 00:00:00 | admin | set | status: tentatively ready -> dr |
2016-02-15 00:00:00 | admin | set | messages: + msg5709 |
2016-02-15 00:00:00 | admin | set | status: drafting -> tentatively ready |
2015-06-16 00:00:00 | admin | create |