diff --git a/src/hb-algs.hh b/src/hb-algs.hh index bbf748e3b..24bdeb190 100644 --- a/src/hb-algs.hh +++ b/src/hb-algs.hh @@ -73,7 +73,7 @@ struct impl (const T& v, hb_priority<1>) const HB_RETURN (uint32_t, hb_deref (v).hash ()) template auto + hb_enable_if (hb_is_integral (T))> auto impl (const T& v, hb_priority<0>) const HB_AUTO_RETURN ( /* Knuth's multiplicative method: */ diff --git a/src/hb-map.hh b/src/hb-map.hh index 942a301e4..26e4930a5 100644 --- a/src/hb-map.hh +++ b/src/hb-map.hh @@ -43,8 +43,8 @@ struct hb_hashmap_t hb_hashmap_t () { init (); } ~hb_hashmap_t () { fini (); } - static_assert (hb_is_integer (K) || hb_is_pointer (K), ""); - static_assert (hb_is_integer (V) || hb_is_pointer (V), ""); + static_assert (hb_is_integral (K) || hb_is_pointer (K), ""); + static_assert (hb_is_integral (V) || hb_is_pointer (V), ""); /* TODO If key type is a pointer, keep hash in item_t and use to: * 1. avoid rehashing when resizing table, and diff --git a/src/hb-meta.hh b/src/hb-meta.hh index 4cf846653..290b41cc2 100644 --- a/src/hb-meta.hh +++ b/src/hb-meta.hh @@ -274,19 +274,19 @@ template <> struct hb_signedness_int { typedef unsigned int value; }; template <> struct hb_signedness_int { typedef signed int value; }; #define hb_signedness_int(T) hb_signedness_int::value -template struct hb_is_integer { static constexpr bool value = false;}; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -template <> struct hb_is_integer { static constexpr bool value = true; }; -#define hb_is_integer(T) hb_is_integer::value +template struct hb_is_integral { static constexpr bool value = false;}; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +template <> struct hb_is_integral { static constexpr bool value = true; }; +#define hb_is_integral(T) hb_is_integral::value #endif /* HB_META_HH */