33                return array == a_it.array && curIndex == a_it.curIndex;
 
   38                return array != a_it.array || curIndex != a_it.curIndex;
 
   77                return iterator(array, curIndex + a_delta);
 
   82                return iterator(array, curIndex - a_delta);
 
   87                assert(array == a_right.array);
 
   88                return curIndex - a_right.curIndex;
 
   94                return (*array)[curIndex];
 
  100                return &(*array)[curIndex];
 
  106                return &(*array)[curIndex];
 
  111                return !array || curIndex < 0 || curIndex >= 
static_cast<std::int32_t
>(array->
GetSize());
 
  146                return array == a_it.array && curIndex == a_it.curIndex;
 
  151                return array != a_it.array || curIndex != a_it.curIndex;
 
  157                    if (curIndex < 
static_cast<std::int32_t
>(array->
GetSize())) {
 
  199                assert(array == a_right.array);
 
  200                return curIndex - a_right.curIndex;
 
  206                return (*array)[curIndex];
 
  212                return &(*array)[curIndex];
 
  218                return &(*array)[curIndex];
 
  223                return !array || curIndex < 0 || curIndex >= 
static_cast<std::int32_t
>(array->
GetSize());
 
  263            data(a_defaultVal, a_size)
 
  273            data.policy = a_policy;
 
  278            return data.policy.NeverShrinking();
 
  288            return data.GetCapacity();
 
  298            data.ClearAndRelease();
 
  308            data.Resize(a_newSize);
 
  313            if (a_newCapacity > 
data.GetCapacity()) {
 
  314                data.Reserve(a_newCapacity);
 
  320            assert(a_index < 
data.size);
 
  321            return data.data[a_index];
 
  326            assert(a_index < 
data.size);
 
  327            return data.data[a_index];
 
  332            assert(a_index < 
data.size);
 
  333            return data.data[a_index];
 
  338            assert(a_index < 
data.size);
 
  339            return data.data[a_index];
 
  344            assert(a_index < 
data.size);
 
  345            return data.data[a_index];
 
  350            data.PushBack(a_val);
 
  356            data.PushBackAlt(a_val);
 
  361            assert(
data.size > 0);
 
  389                *(
data.data + i) = a_array[i];
 
  396            assert(a_index + a_num <= 
data.size);
 
  398            if (
data.size == a_num) {
 
  401                AllocatorType::DestructArray(
data.data + a_index, a_num);
 
  402                AllocatorType::CopyArrayForward(
 
  404                    data.data + a_index + a_num,
 
  405                    data.size + a_num - a_index);
 
  412            assert(a_index < 
data.size);
 
  414            if (
data.size == 1) {
 
  417                AllocatorType::Destruct(
data.data + a_index);
 
  418                AllocatorType::CopyArrayForward(
 
  420                    data.data + a_index + 1,
 
  421                    data.size - 1 - a_index);
 
  428            assert(a_index <= 
data.size);
 
  431            if (a_index < 
data.size - 1) {
 
  432                AllocatorType::CopyArrayBackward(
 
  433                    data.data + a_index + 1,
 
  435                    data.size - 1 - a_index);
 
  437            AllocatorType::Construct(
data.data + a_index, a_val);
 
  442            assert(a_index <= 
data.size);
 
  445            if (a_index < 
data.size - a_num) {
 
  446                AllocatorType::CopyArrayBackward(
 
  447                    data.data + a_index + a_num,
 
  449                    data.size - a_num - a_index);
 
  452            for (
UPInt i = 0; i < a_num; ++i) {
 
  453                AllocatorType::Construct(
data.data + a_index + i, a_val);
 
  464            data.Append(a_other, a_count);
 
Definition: GArrayBase.h:11
 
void Clear()
Definition: GArrayBase.h:301
 
iterator begin()
Definition: GArrayBase.h:467
 
T::SizePolicyType SizePolicyType
Definition: GArrayBase.h:15
 
const ValueType & Front() const
Definition: GArrayBase.h:370
 
const_iterator end() const
Definition: GArrayBase.h:487
 
GArrayBase(GMemoryHeap *a_heap)
Definition: GArrayBase.h:250
 
T data
Definition: GArrayBase.h:498
 
void RemoveAt(UPInt a_index)
Definition: GArrayBase.h:410
 
GArrayBase(GMemoryHeap *a_heap, std::int32_t a_size)
Definition: GArrayBase.h:254
 
GFC_MEMORY_REDEFINE_NEW(GArrayBase, AllocatorType::StatId)
 
void PushBackAlt(const S &a_val)
Definition: GArrayBase.h:354
 
void InsertAt(UPInt a_index, const ValueType &a_val=ValueType())
Definition: GArrayBase.h:426
 
GArrayBase(std::int32_t a_size)
Definition: GArrayBase.h:242
 
void ClearAndRelease()
Definition: GArrayBase.h:296
 
void Resize(UPInt a_newSize)
Definition: GArrayBase.h:306
 
void InsertMultipleAt(UPInt a_index, UPInt a_num, const ValueType &a_val=ValueType())
Definition: GArrayBase.h:440
 
iterator Last()
Definition: GArrayBase.h:477
 
const SelfType & operator=(const SelfType &a_array)
Definition: GArrayBase.h:385
 
bool NeverShrinking() const
Definition: GArrayBase.h:276
 
const_iterator Last() const
Definition: GArrayBase.h:492
 
UPInt GetSize() const
Definition: GArrayBase.h:281
 
const_iterator begin() const
Definition: GArrayBase.h:482
 
void RemoveMultipleAt(UPInt a_index, UPInt a_num)
Definition: GArrayBase.h:394
 
const ValueType & Back() const
Definition: GArrayBase.h:380
 
GArrayBase(const ValueType &a_defaultVal, std::int32_t a_size)
Definition: GArrayBase.h:262
 
GArrayBase()
Definition: GArrayBase.h:238
 
GArrayBase(const ValueType &a_defaultVal)
Definition: GArrayBase.h:258
 
ValueType & operator[](UPInt a_index)
Definition: GArrayBase.h:336
 
void PushBack(const ValueType &a_val)
Definition: GArrayBase.h:348
 
void SetSizePolicy(const SizePolicyType &a_policy)
Definition: GArrayBase.h:271
 
void Reserve(UPInt a_newCapacity)
Definition: GArrayBase.h:311
 
UPInt GetCapacity() const
Definition: GArrayBase.h:286
 
SizePolicyType * GetSizePolicy() const
Definition: GArrayBase.h:266
 
const ValueType & operator[](UPInt a_index) const
Definition: GArrayBase.h:342
 
ValueType ValueAt(UPInt a_index) const
Definition: GArrayBase.h:330
 
const ValueType & At(UPInt a_index) const
Definition: GArrayBase.h:324
 
T::AllocatorType AllocatorType
Definition: GArrayBase.h:14
 
T::ValueType ValueType
Definition: GArrayBase.h:13
 
ValueType & Back()
Definition: GArrayBase.h:375
 
void Append(const SelfType &a_other)
Definition: GArrayBase.h:457
 
UPInt GetNumBytes() const
Definition: GArrayBase.h:291
 
iterator end()
Definition: GArrayBase.h:472
 
void Append(const ValueType a_other[], UPInt a_count)
Definition: GArrayBase.h:462
 
ValueType & At(UPInt a_index)
Definition: GArrayBase.h:318
 
void PopBack()
Definition: GArrayBase.h:359
 
ValueType & Front()
Definition: GArrayBase.h:365
 
GArrayBase(const SelfType &a_array)
Definition: GArrayBase.h:246
 
Definition: GMemoryHeap.h:16
 
Definition: AbsorbEffect.h:6
 
std::size_t UPInt
Definition: SFTypes.h:5
 
std::ptrdiff_t SPInt
Definition: SFTypes.h:8
 
Definition: GArrayBase.h:132
 
bool IsFinished() const
Definition: GArrayBase.h:221
 
const_iterator()
Definition: GArrayBase.h:134
 
bool operator!=(const const_iterator &a_it) const
Definition: GArrayBase.h:149
 
const_iterator operator--(std::int32_t)
Definition: GArrayBase.h:180
 
const_iterator & operator++()
Definition: GArrayBase.h:154
 
const ValueType & operator*() const
Definition: GArrayBase.h:203
 
SPInt operator-(const const_iterator &a_right) const
Definition: GArrayBase.h:197
 
const_iterator operator++(std::int32_t)
Definition: GArrayBase.h:164
 
const_iterator(const SelfType *a_arr, SPInt a_idx=0)
Definition: GArrayBase.h:139
 
const_iterator & operator--()
Definition: GArrayBase.h:171
 
const ValueType * operator->() const
Definition: GArrayBase.h:209
 
const_iterator operator+(std::int32_t a_delta) const
Definition: GArrayBase.h:187
 
const_iterator operator-(std::int32_t a_delta) const
Definition: GArrayBase.h:192
 
SPInt GetIndex() const
Definition: GArrayBase.h:226
 
const ValueType * GetPtr() const
Definition: GArrayBase.h:215
 
bool operator==(const const_iterator &a_it) const
Definition: GArrayBase.h:144
 
Definition: GArrayBase.h:19
 
iterator & operator--()
Definition: GArrayBase.h:58
 
ValueType & operator*() const
Definition: GArrayBase.h:91
 
bool IsFinished() const
Definition: GArrayBase.h:109
 
void Remove()
Definition: GArrayBase.h:114
 
ValueType * GetPtr() const
Definition: GArrayBase.h:103
 
bool operator!=(const iterator &a_it) const
Definition: GArrayBase.h:36
 
bool operator==(const iterator &a_it) const
Definition: GArrayBase.h:31
 
iterator(SelfType *a_arr, SPInt a_idx=0)
Definition: GArrayBase.h:26
 
ValueType * operator->() const
Definition: GArrayBase.h:97
 
iterator operator++(std::int32_t)
Definition: GArrayBase.h:51
 
SPInt GetIndex() const
Definition: GArrayBase.h:121
 
iterator & operator++()
Definition: GArrayBase.h:41
 
SPInt operator-(const iterator &a_right) const
Definition: GArrayBase.h:85
 
iterator operator--(std::int32_t)
Definition: GArrayBase.h:68
 
iterator()
Definition: GArrayBase.h:21
 
iterator operator+(std::int32_t a_delta) const
Definition: GArrayBase.h:75
 
iterator operator-(std::int32_t a_delta) const
Definition: GArrayBase.h:80