Like PR 37971 but this time Find is a template member function instead of just a member function. Testcase:
class foo { template<typename U> static bool func(const U& x) {} public: template<typename U> unsigned int Find(const U& x, bool (*pFunc) (const U&) = func) const {} }; class bar { bool Initialize(); protected: foo b; }; bool bar::Initialize() { b.Find(b); } -- Summary: [4.3/4.4/4.5 Regression] Rejects default argument that is a template via access failure 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: pinskia at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39987