9 inline bool realloc(T*& a_pointer,
size_t a_new_size,
size_t a_old_size,
bool a_init =
false) {
16 a_pointer =
new T[a_new_size];
17 if(!a_pointer)
return false;
20 if(a_old_size==a_new_size)
return true;
21 T* pointer =
new T[a_new_size];
27 if(a_new_size>a_old_size) {
28 ::memcpy(pointer,a_pointer,a_old_size*
sizeof(T));
30 size_t num = a_new_size-a_old_size;
31 T* pos = pointer+a_old_size;
32 for(
size_t i=0;i<num;i++,pos++) *pos = T();
35 ::memcpy(pointer,a_pointer,a_new_size*
sizeof(T));