[array] Use hb_is_cr_convertible_to()

This commit is contained in:
Behdad Esfahbod 2019-04-26 12:58:06 -07:00
parent 8ecae793aa
commit b2758c360c

View File

@ -47,22 +47,12 @@ struct hb_array_t : hb_iter_with_fallback_t<hb_array_t<Type>, Type&>
template <unsigned int length_> hb_array_t (Type (&array_)[length_]) : arrayZ (array_), length (length_) {} template <unsigned int length_> hb_array_t (Type (&array_)[length_]) : arrayZ (array_), length (length_) {}
template <typename U, template <typename U,
hb_enable_if ( hb_enable_if (hb_is_cr_convertible_to(U, Type))>
hb_is_same (Type, U) ||
hb_is_same (hb_remove_const<Type>, U) ||
hb_is_same (Type, hb_remove_reference<U>) ||
hb_is_same (hb_remove_const<Type>, hb_remove_reference<U>)
)>
hb_array_t (const hb_array_t<U> &o) : hb_array_t (const hb_array_t<U> &o) :
hb_iter_with_fallback_t<hb_array_t<Type>, Type&> (), hb_iter_with_fallback_t<hb_array_t<Type>, Type&> (),
arrayZ (o.arrayZ), length (o.length) {} arrayZ (o.arrayZ), length (o.length) {}
template <typename U, template <typename U,
hb_enable_if ( hb_enable_if (hb_is_cr_convertible_to(U, Type))>
hb_is_same (Type, U) ||
hb_is_same (hb_remove_const<Type>, U) ||
hb_is_same (Type, hb_remove_reference<U>) ||
hb_is_same (hb_remove_const<Type>, hb_remove_reference<U>)
)>
hb_array_t& operator = (const hb_array_t<U> &o) hb_array_t& operator = (const hb_array_t<U> &o)
{ arrayZ = o.arrayZ; length = o.length; return *this; } { arrayZ = o.arrayZ; length = o.length; return *this; }