https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100339
Bug ID: 100339 Summary: Bogus "should have been declared inside" error with friend Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek at gcc dot gnu.org Target Milestone: --- template<typename T> void fn (T); class C { friend void ::fn(int); friend void ::fn<>(double); friend void ::fn<double *>(double *); }; gives: $ ./cc1plus -quiet q.C q.C:5:23: error: ‘void fn(int)’ should have been declared inside ‘::’ 5 | friend void ::fn(int); | ^ but ::fn(int) should refer to an instantiation of fn. Started with r249385.