template <> struct hb_int_max<unsigned long long> { static constexpr unsigned long long value = ULLONG_MAX; };
#define hb_int_max(T) hb_int_max<T>::value
-template <bool is_signed> struct hb_signedness_int;
-template <> struct hb_signedness_int<false> { typedef unsigned int value; };
-template <> struct hb_signedness_int<true> { typedef signed int value; };
-#define hb_signedness_int(T) hb_signedness_int<T>::value
-
#endif /* HB_META_HH */
struct IntType
{
typedef Type type;
- typedef typename hb_signedness_int (hb_is_signed (Type)) wide_type;
+ typedef hb_conditional<hb_is_signed (Type), signed, unsigned> wide_type;
IntType<Type, Size>& operator = (wide_type i) { v = i; return *this; }
operator wide_type () const { return v; }