1 // PR c++/49229
2 // { dg-do compile { target c++11 } }
3 
4 extern void* enabler;
5 
6 template<bool, class = void>
7 struct enable_if {};
8 
9 template<class T>
10 struct enable_if<true, T> {
11   typedef T type;
12 };
13 
14 template<class... Bn>
15 struct and_;
16 
17 template<class B1>
18 struct and_<B1> : B1 {};
19 
20 template<class, class>
21 struct is_same {
22   static constexpr bool value = false;
23 };
24 
25 template<class T>
26 struct is_same<T, T> {
27   static constexpr bool value = true;
28 };
29 
30 template<class... T>
31 struct S {
32   template<class... U,
33     typename enable_if<and_<is_same<T, U>...>::value>::type*& = enabler // { dg-error "no type" }
34   >
35   S(U...){}
36 };
37 
38 S<bool> s(0);			// { dg-error "no match" }
39