1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// { dg-do compile } template<int> struct A { void foo(void(*)(A)); void bar(void(*f)(A)) { foo(f); foo(f); } }; template<int N> inline void FOO(A<N> a) { a.foo(0); } extern template void FOO(A<0>); void BAR() { A<0> a; FOO(a); a.bar(FOO); }