// { dg-do compile { target c++11 } } | |
template <int> struct K { }; | |
template <class T = void, typename T::type M> int f(K<M>); // { dg-error "void" } | |
int a = f(K<42>{}); // { dg-error "no match" } | |
struct S { using type = void; }; | |
template <class T = S, typename T::type M> int g(K<M>); // { dg-message "deduction" } | |
int b = g(K<42>{}); // { dg-error "no match" } |