Created on 2015-06-16.00:00:00 last changed 93 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 | |