1 // PR c++/47974
2 
3 typedef double T;
4 
5 struct A
6 {
7   template<T> void foo(); // { dg-error "type" }
8 };
9 
10 template<T N = 0, void (A::*)() = &A::foo<N> > struct B {}; // { dg-error "type|declared" }
11 
12 B<> b; // { dg-message "non-type" }
13 
14 // { dg-prune-output "(could not convert|no matches)" }
15