30 #ifndef __ZMQ_ARRAY_INCLUDED__ 31 #define __ZMQ_ARRAY_INCLUDED__ 85 template <
typename T,
int ID = 0>
class array_t 93 typedef typename std::vector <T*>::size_type
size_type;
105 return items.size ();
110 return items.empty ();
113 inline T *&operator [] (size_type index_)
115 return items [index_];
121 ((item_t*) item_)->set_array_index ((
int) items.size ());
122 items.push_back (item_);
129 inline void erase (size_type index_) {
132 items [index_] = items.back ();
136 inline void swap (size_type index1_, size_type index2_)
139 ((item_t*) items [index1_])->set_array_index ((
int) index2_);
141 ((item_t*) items [index2_])->set_array_index ((
int) index1_);
142 std::swap (items [index1_], items [index2_]);
152 return (size_type) ((item_t*) item_)->get_array_index ();
void set_array_index(int index_)
std::vector< T * >::size_type size_type
void swap(size_type index1_, size_type index2_)
array_item_t< ID > item_t
const array_item_t & operator=(const array_item_t &)
size_type index(T *item_)
void erase(size_type index_)
std::vector< T * > items_t