[iter] Make hb_iter() into function-object
This commit is contained in:
parent
98be7bd77a
commit
72dd5e34e0
|
@ -124,16 +124,26 @@ struct hb_iter_t
|
||||||
|
|
||||||
/* TODO Change to function-object. */
|
/* TODO Change to function-object. */
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
inline hb_iter_t (T)
|
|
||||||
hb_iter (const T& c) { return c.iter (); }
|
|
||||||
|
|
||||||
/* Specialization for C arrays. */
|
|
||||||
template <typename> struct hb_array_t;
|
template <typename> struct hb_array_t;
|
||||||
template <typename Type> inline hb_array_t<Type>
|
|
||||||
hb_iter (Type *array, unsigned int length) { return hb_array_t<Type> (array, length); }
|
static const struct
|
||||||
template <typename Type, unsigned int length> hb_array_t<Type>
|
{
|
||||||
hb_iter (Type (&array)[length]) { return hb_iter (array, length); }
|
template <typename T>
|
||||||
|
hb_iter_t (T)
|
||||||
|
operator () (const T& c) const
|
||||||
|
{ return c.iter (); }
|
||||||
|
|
||||||
|
/* Specialization for C arrays. */
|
||||||
|
|
||||||
|
template <typename Type> inline hb_array_t<Type>
|
||||||
|
operator () (Type *array, unsigned int length) const
|
||||||
|
{ return hb_array_t<Type> (array, length); }
|
||||||
|
|
||||||
|
template <typename Type, unsigned int length> hb_array_t<Type>
|
||||||
|
operator () (Type (&array)[length]) const
|
||||||
|
{ return hb_array_t<Type> (array, length); }
|
||||||
|
|
||||||
|
} hb_iter HB_UNUSED;
|
||||||
|
|
||||||
|
|
||||||
/* Mixin to fill in what the subclass doesn't provide. */
|
/* Mixin to fill in what the subclass doesn't provide. */
|
||||||
|
|
Loading…
Reference in New Issue