// is_signed template ::value> struct ___is_signed : public integral_constant {}; template struct ___is_signed<_Tp, false> : public true_type {}; // floating point template ::value> struct __is_signed : public ___is_signed<_Tp> {}; template struct __is_signed<_Tp, false> : public false_type {}; template struct is_signed : public __is_signed<_Tp> {};