This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-10-26
[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...