From e1d2facd5363951adec78b080cf616e4bc3ff9d3 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 15 Jul 2022 16:02:58 -0600 Subject: [PATCH] [null] Add hb_has_null_size() and hb_has_min_size() --- src/hb-null.hh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/hb-null.hh b/src/hb-null.hh index d59f123fa..0d7f4da79 100644 --- a/src/hb-null.hh +++ b/src/hb-null.hh @@ -39,6 +39,24 @@ #define HB_NULL_POOL_SIZE 448 +template +struct _hb_has_min_size : hb_false_type {}; +template +struct _hb_has_min_size> + : hb_true_type {}; +template +using hb_has_min_size = _hb_has_min_size; +#define hb_has_min_size(T) hb_has_min_size::value + +template +struct _hb_has_null_size : hb_false_type {}; +template +struct _hb_has_null_size> + : hb_true_type {}; +template +using hb_has_null_size = _hb_has_null_size; +#define hb_has_null_size(T) hb_has_null_size::value + /* Use SFINAE to sniff whether T has min_size; in which case return the larger * of sizeof(T) and T::null_size, otherwise return sizeof(T). *