From 7b4eea853c36fd59db6e5d68bbef9b8cebad760e Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 21 Dec 2018 16:02:16 -0500 Subject: [PATCH] [array] Add more hb_array() / hb_sorted_array() variants --- src/hb-array.hh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/hb-array.hh b/src/hb-array.hh index d82b0dced..3cce512cd 100644 --- a/src/hb-array.hh +++ b/src/hb-array.hh @@ -182,9 +182,12 @@ struct hb_array_t Type *arrayZ; unsigned int len; }; -template -inline hb_array_t hb_array (T *array, unsigned int len) +template inline hb_array_t +hb_array (T *array, unsigned int len) { return hb_array_t (array, len); } +template inline hb_array_t +hb_array (T (&array_)[len_]) +{ return hb_array_t (array_); } enum hb_bfind_not_found_t @@ -200,6 +203,7 @@ struct hb_sorted_array_t : hb_array_t hb_sorted_array_t () : hb_array_t () {} hb_sorted_array_t (const hb_array_t &o) : hb_array_t (o) {} hb_sorted_array_t (Type *array_, unsigned int len_) : hb_array_t (array_, len_) {} + template hb_sorted_array_t (Type (&array_)[len_]) : hb_array_t (array_) {} hb_sorted_array_t sub_array (unsigned int start_offset, unsigned int *seg_count /* IN/OUT */) const { return hb_sorted_array_t (((const hb_array_t *) (this))->sub_array (start_offset, seg_count)); } @@ -261,9 +265,12 @@ struct hb_sorted_array_t : hb_array_t return false; } }; -template -inline hb_sorted_array_t hb_sorted_array (T *array, unsigned int len) +template inline hb_sorted_array_t +hb_sorted_array (T *array, unsigned int len) { return hb_sorted_array_t (array, len); } +template inline hb_sorted_array_t +hb_sorted_array (T (&array_)[len_]) +{ return hb_sorted_array_t (array_); } typedef hb_array_t hb_bytes_t;