PR c++/85765 - SFINAE and non-type default template arg.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / constexpr-targ3.C
blobd1e44827a3cc686bd8a7a6aa3fbd1b283a002e32
1 // PR c++/67108
2 // { dg-do compile { target c++11 } }
4 template < typename, typename > struct is_same;
5 template < typename T > struct is_same <T, T >
7   enum
8   {
9     value = true
10   }
11    ;
12     constexpr bool operator () ()
13   {
14     return value;
15   }
17  ;
18 template < bool, typename = void >struct enable_if;
19 template < typename T > struct enable_if <true, T >
21   typedef T type;
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 >
29   () >::type >
31   template < typename MakeDependent > F (MakeDependent)
32   {
33   }
37 int main ()
39   F < A > (1);