#ifndef HB_ARRAY_HH
#define HB_ARRAY_HH
#include "hb.hh"
#include "hb-algs.hh"
#include "hb-iter.hh"
#include "hb-null.hh"
template <typename Type>
struct hb_sorted_array_t;
enum hb_not_found_t
{ … };
template <typename Type>
struct hb_array_t : hb_iter_with_fallback_t<hb_array_t<Type>, Type&>
{ … };
template <typename T> inline hb_array_t<T>
hb_array ()
{ … }
template <typename T> inline hb_array_t<T>
hb_array (T *array, unsigned int length)
{ … }
template <typename T, unsigned int length_> inline hb_array_t<T>
hb_array (T (&array_)[length_])
{ … }
template <typename Type>
struct hb_sorted_array_t :
hb_array_t<Type>,
hb_iter_t<hb_sorted_array_t<Type>, Type&>
{ … };
template <typename T> inline hb_sorted_array_t<T>
hb_sorted_array (T *array, unsigned int length)
{ … }
template <typename T, unsigned int length_> inline hb_sorted_array_t<T>
hb_sorted_array (T (&array_)[length_])
{ … }
template <typename T>
inline bool hb_array_t<T>::operator == (const hb_array_t<T> &o) const
{ … }
template <>
inline bool hb_array_t<const char>::operator == (const hb_array_t<const char> &o) const
{ … }
template <>
inline bool hb_array_t<const unsigned char>::operator == (const hb_array_t<const unsigned char> &o) const
{ … }
#ifndef HB_OPTIMIZE_SIZE_MORE
template <>
inline uint32_t hb_array_t<const char>::hash () const
{ … }
template <>
inline uint32_t hb_array_t<const unsigned char>::hash () const
{ … }
#endif
hb_bytes_t;
hb_ubytes_t;
#endif