71 static_assert(std::is_trivial<TYPE>::value,
"Non trivial type used, try Util::Array instead");
79 Array<TYPE>(_capacity, _grow)
82 static_assert(std::is_trivial<TYPE>::value,
"Non trivial type used, try Util::Array instead");
90 Array<TYPE>(initialSize, _grow, initialValue)
92 static_assert(std::is_trivial<TYPE>::value,
"Non trivial type used, try Util::Array instead");
102 static_assert(std::is_trivial<TYPE>::value,
"Non trivial type used, try Util::Array instead");
129template<
class TYPE>
void
132 #if NEBULA_BOUNDSCHECKS
149template<
class TYPE>
void
152#if NEBULA_BOUNDSCHECKS
168template<
class TYPE>
void
186template<
class TYPE>
void
191 if ((this->
capacity > 0) && (rhs.
size <= this->capacity))
212template<
class TYPE>
void
217 if ((this->
capacity > 0) && (rhs.
size <= this->capacity))
237template<
class TYPE>
void
240 TYPE* newArray =
new TYPE[newCapacity];
256template<
class TYPE>
void
259 #if NEBULA_BOUNDSCHECKS
265 if (fromIndex == toIndex)
271 SizeT num = this->size - fromIndex;
274 SizeT neededSize = toIndex + num;
281 if (fromIndex > toIndex)
285 for (i = 0; i < num; i++)
294 for (i = num - 1; i >= 0; --i)
301 this->size = toIndex + num;
307template<
class TYPE>
void
310 #if NEBULA_BOUNDSCHECKS
313 if (index == (this->size - 1))
320 this->
Move(index + 1, index);
328template<
class TYPE>
void
331 #if NEBULA_BOUNDSCHECKS
336 IndexT lastElementIndex = this->size - 1;
337 if (index < lastElementIndex)
349template<
class TYPE>
void
SizeT capacity
Definition array.h:248
TYPE * elements
Definition array.h:250
SizeT grow
Definition array.h:247
void Delete()
delete content
Definition array.h:422
void Grow()
grow array with grow value
Definition array.h:568
size_t size() const
Definition array.h:1699
Array()
constructor with default parameters
Definition array.h:259
TYPE * Iterator
define iterator
Definition trivialarray.h:22
void Copy(const TrivialArray< TYPE > &src)
copy content
Definition trivialarray.h:130
~TrivialArray()
destructor
Definition trivialarray.h:178
void Move(IndexT fromIndex, IndexT toIndex)
move elements, grows array if needed
Definition trivialarray.h:257
void EraseIndexSwap(IndexT index)
erase element at index, fill gap by swapping in last element, destroys sorting!
Definition trivialarray.h:329
void Clear()
clear array (calls destructors)
Definition trivialarray.h:350
void EraseIndex(IndexT index)
erase element at index, keep sorting intact
Definition trivialarray.h:308
TrivialArray()
constructor with default parameters
Definition trivialarray.h:69
void GrowTo(SizeT newCapacity)
grow array to target size
Definition trivialarray.h:238
void operator=(const TrivialArray< TYPE > &rhs)
assignment operator
Definition trivialarray.h:187
void Destroy(TYPE *elm)
does nothing
Definition trivialarray.h:169
#define n_assert(exp)
Definition debug.h:50
void Copy(const void *from, void *to, size_t numBytes)
Copy a chunk of memory (note the argument order is different from memcpy()!
Definition osxmemory.cc:213
A pinned array is an array which manages its own virtual memory.
Definition String.cs:6
int SizeT
Definition types.h:49
int IndexT
Definition types.h:48