Community
Participate
Working Groups
struct S { int x; }; template <typename> struct iterator_base { S operator*(); }; template <typename> struct A { struct iterator : public iterator_base<iterator> { }; }; int main() { A<int>::iterator it; auto s = *it; s.x; // ERROR HERE: "Field 'x' could not be resolved" } The error goes away if either class is made a nontemplate. This worked fine in previous Juno builds.
Added testcases and fix.
Thanks Markus for your prompt bug fixes! I'm done with reporting bugs for a while, as the vast majority of the remaining false positive errors in our codebase reduce to uses of dependent expressions :)
*** cdt git genie on behalf of Markus Schorn *** Bug 368610: Specialization of classes used as template args [*] http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=66f92bb58277c3cc845249c089b0bf28b9e0312e