// { dg-do compile { target c++11 } } template struct tuple_base { static const int value = 0; }; template<> struct tuple_base { static const int value = 1; }; template<> struct tuple_base { static const int value = 2; }; template<> struct tuple_base { static const int value = 3; }; template struct int_tuple : tuple_base { }; template struct tuple_int : tuple_base { }; int a0a[int_tuple::value == 0? 1 : -1]; int a0b[int_tuple::value == 0? 1 : -1]; int a1a[int_tuple<>::value == 1? 1 : -1]; int a1b[tuple_int<>::value == 1? 1 : -1]; int a2[int_tuple::value == 2? 1 : -1]; int a3[tuple_int::value == 3? 1 : -1];