I think this is the same as PR23055, but better be safe than sorry... Maybe Jason can have a look and fix both at once. In any case, both ICC and SunStudio accept this one too:
template <class T> void S(T op, typename T::X const *); struct Widget { typedef int X; }; void f() { Widget w; S(w, 0); } -- Summary: overload resolution does not find templated function (zero -> pointer) (2) Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: paolo dot carlini at oracle dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41104