This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 118e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2025-11-03
[Moved to DR at the November, 2016 meeting.]
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();
}
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...
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...