Lines Matching defs:data

147     T*  data;
160 vec(void) : data(NULL) , sz(0) , cap(0) { }
161 vec(int size) : data(NULL) , sz(0) , cap(0) { growTo(size); }
162 vec(int size, const T& pad) : data(NULL) , sz(0) , cap(0) { growTo(size, pad); }
163 vec(T* array, int size) : data(array), sz(size), cap(size) { } // (takes ownership of array -- will be deallocated with 'xfree()')
167 T* release (void) { T* ret = data; data = NULL; sz = 0; cap = 0; return ret; }
168 operator T* (void) { return data; } // (unsafe but convenient)
169 operator const T* (void) const { return data; }
173 void shrink (int nelems) { assert(nelems <= sz); for (int i = 0; i < nelems; i++) sz--, data[sz].~T(); }
174 void pop (void) { sz--, data[sz].~T(); }
181 void push (void) { if (sz == cap) grow(sz+1); new (&data[sz]) T() ; sz++; }
182 void push (const T& elem) { if (sz == cap) grow(sz+1); new (&data[sz]) T(elem); sz++; }
183 const T& last (void) const { return data[sz-1]; }
184 T& last (void) { return data[sz-1]; }
187 const T& operator [] (int index) const { return data[index]; }
188 T& operator [] (int index) { return data[index]; }
199 void copyTo(vec<T>& copy) const { copy.clear(); copy.growTo(sz); for (int i = 0; i < sz; i++) new (&copy[i]) T(data[i]); }
200 void moveTo(vec<T>& dest) { dest.clear(true); dest.data = data; dest.sz = sz; dest.cap = cap; data = NULL; sz = 0; cap = 0; }
208 data = xrealloc(data, cap); }
214 for (int i = sz; i < size; i++) new (&data[i]) T(pad);
221 for (int i = sz; i < size; i++) new (&data[i]) T();
226 if (data != NULL){
227 for (int i = 0; i < sz; i++) data[i].~T();
229 if (dealloc) xfree(data), data = NULL, cap = 0; } }