1 // PR c++/15629 2 // { dg-do link } 3 4 template<int a, int b> class T; 5 6 template<int a, int b> void func(T<a, b> * t); func(T<a,3> * t)7template<int a> void func(T<a, 3> * t) {} 8 template void func<2>(T<2, 3>*); 9 10 template<int a, int b> struct T { 11 friend void func<a, b>(T<a, b> * t); 12 friend void func<a> (T<a, 3> * t); 13 14 void foo(); 15 }; 16 foo()17template<int a, int b> void T<a, b>::foo() { 18 func((T<2,3>*)0); 19 } 20 main()21int main() { 22 T<2,3>().foo(); 23 } 24