3 template <typename T> struct S {};
5 template <typename R> struct ref;
6 template <> struct ref<double> { typedef double result; };
9 void foo(typename ref<T>::result, S<T>*);
11 void foo(S<double>, S<double>*); // { dg-error "does not match" }
13 void foo(double alpha, S<double>* x)