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