4 template<int a, int b> class T;
6 template<int a, int b> void func(T<a, b> * t);
7 template<int a> void func(T<a, 3> * t) {}
8 template void func<2>(T<2, 3>*);
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);
17 template<int a, int b> void T<a, b>::foo() {