[vector] Add copy constructor and assignment operator
This commit is contained in:
parent
6f69c9d26f
commit
357c7c611c
|
@ -38,8 +38,13 @@ struct hb_vector_t
|
||||||
typedef Type item_t;
|
typedef Type item_t;
|
||||||
static constexpr unsigned item_size = hb_static_size (Type);
|
static constexpr unsigned item_size = hb_static_size (Type);
|
||||||
|
|
||||||
HB_NO_COPY_ASSIGN_TEMPLATE (hb_vector_t, Type);
|
|
||||||
hb_vector_t () { init (); }
|
hb_vector_t () { init (); }
|
||||||
|
hb_vector_t (const hb_vector_t &o)
|
||||||
|
{
|
||||||
|
init ();
|
||||||
|
alloc (o.length);
|
||||||
|
hb_iter (o) | hb_sink (this);
|
||||||
|
}
|
||||||
~hb_vector_t () { fini (); }
|
~hb_vector_t () { fini (); }
|
||||||
|
|
||||||
unsigned int length;
|
unsigned int length;
|
||||||
|
@ -69,6 +74,16 @@ struct hb_vector_t
|
||||||
fini ();
|
fini ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void reset () { resize (0); }
|
||||||
|
|
||||||
|
hb_vector_t& operator = (const hb_vector_t &o)
|
||||||
|
{
|
||||||
|
reset ();
|
||||||
|
alloc (o.length);
|
||||||
|
hb_iter (o) | hb_sink (this);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
const Type * arrayZ () const { return arrayZ_; }
|
const Type * arrayZ () const { return arrayZ_; }
|
||||||
Type * arrayZ () { return arrayZ_; }
|
Type * arrayZ () { return arrayZ_; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue