1// { dg-do run } 2template <class T> 3void f(T t); 4 5template <class T> 6void f(T* t); 7 8template <> 9void f(int* ip) {} 10 11struct S1 12{ 13 template <class T> 14 void f(T t); 15 16 template <class T> 17 void f(T* t); 18}; 19 20template <> 21void S1::f(int* ip) {} 22 23template <class U> 24struct S2 25{ 26 template <class T> 27 void f(T t); 28 29 template <class T> 30 void f(T* t); 31}; 32 33template <> 34template <> 35void S2<double>::f(int* ip) {} 36 37int main() 38{ 39 int* ip; 40 S1 s1; 41 s1.f(ip); 42 S2<double> s2; 43 s2.f(ip); 44} 45