// { dg-options "-std=gnu++0x" } template struct function_traits; template struct function_traits { typedef R result_type; }; template struct function_traits { typedef R result_type; }; template struct function_traits { typedef R result_type; }; template struct same_type { static const bool value = false; }; template struct same_type { static const bool value = true; }; struct X {}; int a0[same_type::result_type, int>::value? 1 : -1]; int a1[same_type::result_type, int>::value? 1 : -1]; int a2[same_type::result_type, int>::value? 1 : -1]; int a3[same_type::result_type, int>::value? 1 : -1];