https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63263
--- Comment #1 from Carlo Wood <carlo at gcc dot gnu.org> --- Guess the float isn't needed: template<typename T> void f(T&) { T(1); } struct B; template<> void f(B&) { } struct B { friend void f<B>(B&); }; void g() { B b; f(b); }