[iter] Use is_sorted_iterator
diff --git a/src/hb-array.hh b/src/hb-array.hh
index 70053b4..3339ad2 100644
--- a/src/hb-array.hh
+++ b/src/hb-array.hh
@@ -46,6 +46,8 @@
    */
   hb_array_t () : arrayZ (nullptr), length (0) {}
   hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
+  hb_array_t (const hb_array_t<hb_remove_const (Type)> &o) : arrayZ (o.arrayZ), length (o.length) {}
+  hb_array_t (const hb_array_t<const Type> &o) : arrayZ (o.arrayZ), length (o.length) {}
   template <unsigned int length_> hb_array_t (Type (&array_)[length_]) : arrayZ (array_), length (length_) {}
 
 
@@ -203,6 +205,8 @@
 
   hb_sorted_array_t () : hb_array_t<Type> () {}
   hb_sorted_array_t (const hb_array_t<Type> &o) : hb_array_t<Type> (o) {}
+  hb_sorted_array_t (const hb_sorted_array_t<hb_remove_const (Type)> &o) : hb_array_t<Type> (o) {}
+  hb_sorted_array_t (const hb_sorted_array_t<const Type> &o) : hb_array_t<Type> (o) {}
   hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
   template <unsigned int length_> hb_sorted_array_t (Type (&array_)[length_]) : hb_array_t<Type> (array_) {}