From 726002a6a615e2d213186d402cca4e8d7e7a7f58 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 9 May 2019 14:53:02 -0700 Subject: [PATCH] [iter] Make hb_is_iterator_of() check is_convertible Instead of is_cr_convertible. --- src/hb-array.hh | 8 ++++---- src/hb-iter.hh | 2 +- src/hb-meta.hh | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/hb-array.hh b/src/hb-array.hh index a320685..1fc07eb 100644 --- a/src/hb-array.hh +++ b/src/hb-array.hh @@ -47,12 +47,12 @@ struct hb_array_t : hb_iter_with_fallback_t, Type&> template hb_array_t (Type (&array_)[length_]) : arrayZ (array_), length (length_) {} template + hb_enable_if (hb_is_cr_convertible(U, Type))> hb_array_t (const hb_array_t &o) : hb_iter_with_fallback_t, Type&> (), arrayZ (o.arrayZ), length (o.length) {} template + hb_enable_if (hb_is_cr_convertible(U, Type))> hb_array_t& operator = (const hb_array_t &o) { arrayZ = o.arrayZ; length = o.length; return *this; } @@ -228,12 +228,12 @@ struct hb_sorted_array_t : template hb_sorted_array_t (Type (&array_)[length_]) : hb_array_t (array_) {} template + hb_enable_if (hb_is_cr_convertible(U, Type))> hb_sorted_array_t (const hb_array_t &o) : hb_iter_t, Type&> (), hb_array_t (o) {} template + hb_enable_if (hb_is_cr_convertible(U, Type))> hb_sorted_array_t& operator = (const hb_array_t &o) { hb_array_t (*this) = o; return *this; } diff --git a/src/hb-iter.hh b/src/hb-iter.hh index 13b8260..2c1e31b 100644 --- a/src/hb-iter.hh +++ b/src/hb-iter.hh @@ -266,7 +266,7 @@ static inline char _hb_is_iterator_of (hb_priority<0>, const void *) { return 0; template + hb_enable_if (hb_is_convertible (Item2, Item))> static inline int _hb_is_iterator_of (hb_priority<2>, hb_iter_t *) { return 0; } template diff --git a/src/hb-meta.hh b/src/hb-meta.hh index b2344f7..9c8dfed 100644 --- a/src/hb-meta.hh +++ b/src/hb-meta.hh @@ -116,10 +116,10 @@ template using hb_remove_pointer = typename hb_match_pointer::ty /* TODO Add feature-parity to std::decay. */ template using hb_decay = hb_remove_const>; -#define hb_is_cr_convertible_to(A, B) ( \ - hb_is_same (hb_decay, hb_decay) && \ - hb_is_const (A) <= hb_is_const (B) && \ - hb_is_reference (A) >= hb_is_reference (B)) +#define hb_is_cr_convertible(From, To) ( \ + hb_is_same (hb_decay, hb_decay) && \ + hb_is_const (From) <= hb_is_const (To) && \ + hb_is_reference (From) >= hb_is_reference (To)) -- 2.7.4