http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52529
--- Comment #4 from Jonathan Wakely 2012-03-08
09:28:13 UTC ---
(In reply to comment #1)
> A().foo(x);
> Should be:
> A().template foo(x);
This is a FAQ
http://womble.decadent.org.uk/c++/template-faq.html#disambiguation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52529
--- Comment #3 from Daniel Krügler
2012-03-08 08:50:59 UTC ---
The compiler is correct to reject your example FIRST, SECOND, and THIRD.
In FIRST and THIRD you are effectively asking to deduce T from
template long foo(typename T::X *x);
which
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52529
Andrew Pinski changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52529
--- Comment #1 from Andrew Pinski 2012-03-08
08:25:48 UTC ---
A().foo(x);
Should be:
A().template foo(x);