1 // PR c++/67108
2 // { dg-do compile { target c++11 } }
3 
4 template < typename, typename > struct is_same;
5 template < typename T > struct is_same <T, T >
6 {
7   enum
8   {
9     value = true
10   }
11    ;
12     constexpr bool operator () ()
13   {
14     return value;
15   }
16 }
17  ;
18 template < bool, typename = void >struct enable_if;
19 template < typename T > struct enable_if <true, T >
20 {
21   typedef T type;
22 }
23  ;
24 struct A;
25 template < typename, typename = void >struct F;
26 template < typename X > struct F <X, typename enable_if < is_same < X, A >
27 {
28 }
29   () >::type >
30 {
31   template < typename MakeDependent > F (MakeDependent)
32   {
33   }
34 }
35 ;
36 
37 int main ()
38 {
39   F < A > (1);
40 }
41