17template <
typename T,
typename Allocator = JGadget::TAllocator<T> >
51 JGADGET_ASSERTWARN(250,
size()==0);
62 JGADGET_WARNMSG(321,
"can't allocate memory");
64 std::uninitialized_fill_n(ptr, count, val);
69 T*
const pIt = pFirst;
77 void** newEnd = pIt + pCount;
80 void** pOverwrittenValues =
pEnd_ - pCount;
81 std::uninitialized_copy(pOverwrittenValues,
pEnd_,
pEnd_);
82 std::copy_backward(pIt, pOverwrittenValues,
pEnd_);
88 std::uninitialized_copy(pIt,
pEnd_, newEnd);
98 void** newDataPointer =
mAllocator.allocate(newSize, 0);
99 if (!newDataPointer) {
105 void**
const endOfCopy = std::uninitialized_copy(
pBegin_, pIt, newDataPointer);
106 std::uninitialized_copy(pIt,
pEnd_, endOfCopy + pCount);
119 u32 diff = (int)((uintptr_t)pos - (uintptr_t)
begin()) / 4;
133 return (
int)((uintptr_t)
pEnd_ - (uintptr_t)
pBegin_) / 4;
140 JGADGET_WARNMSG(507,
"illegal size");
150 u32 neededNewSpace = oldSize + count;
153 return neededNewSpace > extendedSize ? neededNewSpace : extendedSize;
160 for (; it != pLast; it++) {
172 JUT_ASSERT(349, pItFirst<=pItLast);
173 T* vectorEnd =
pEnd_;
174 T* ppvVar3 = std::copy(pItLast, vectorEnd, pItFirst);
196 void insert(
void**,
void*
const&);
197 void**
erase(
void**,
void**);
204struct TVector_pointer : TVector_pointer_void {
int diff
Definition e_fmod.c:41
unsigned long u32
Definition types.h:12
u32 extend_default(u32, u32, u32)
Definition std-vector.cpp:5
Definition linklist.cpp:6
u32(* extendFunc)(u32, u32, u32)
Definition std-vector.h:15
Definition std-memory.h:8
Definition std-vector.h:19
Allocator * mAllocator
Definition std-vector.h:29
T * mPtr
Definition std-vector.h:30
TDestructed_deallocate_(JGadget::TAllocator< T > &allocator, T *ptr)
Definition std-vector.h:20
void set(T *ptr)
Definition std-vector.h:27
~TDestructed_deallocate_()
Definition std-vector.h:25
void insert(void **, void *const &)
Definition std-vector.cpp:19
void ** erase(void **, void **)
Definition std-vector.cpp:23
void clear()
Definition std-vector.h:199
TVector_pointer_void(u32, void *const &, const JGadget::TAllocator< void * > &allocator)
TVector_pointer_void(const JGadget::TAllocator< void * > &allocator)
Definition std-vector.cpp:9
~TVector_pointer_void()
Definition std-vector.cpp:16
void push_back(void *const &value)
Definition std-vector.h:200
const T * const_iterator
Definition std-vector.h:209
T * begin()
Definition std-vector.h:212
const T * begin() const
Definition std-vector.h:211
T * end()
Definition std-vector.h:215
~TVector_pointer()
Definition std-vector.h:206
const T * end() const
Definition std-vector.h:214
void push_back(const T &ref)
Definition std-vector.h:217
TVector_pointer(const TAllocator< void * > &allocator)
Definition std-vector.h:205
T * iterator
Definition std-vector.h:208
u32 capacity() const
Definition std-vector.h:136
const_iterator end() const
Definition std-vector.h:127
T * erase(T *pFirst, T *pLast)
Definition std-vector.h:167
void insert(T *pos, u32 count, const T &val)
Definition std-vector.h:55
T * Insert_raw(T *pFirst, u32 pCount)
Definition std-vector.h:68
TVector(Allocator const &allocator)
Definition std-vector.h:36
Allocator mAllocator
Definition std-vector.h:182
T * insert(T *pos, const T &val)
Definition std-vector.h:118
T * pEnd_
Definition std-vector.h:184
const T * const_iterator
Definition std-vector.h:34
iterator begin()
Definition std-vector.h:124
T * iterator
Definition std-vector.h:33
u32 mCapacity
Definition std-vector.h:185
void DestroyElement_(T *pFirst, T *pLast)
Definition std-vector.h:156
void DestroyElement_all_()
Definition std-vector.h:165
const_iterator begin() const
Definition std-vector.h:125
void clear()
Definition std-vector.h:180
u32 size() const
Definition std-vector.h:129
u32 GetSize_extend_(u32 count) const
Definition std-vector.h:146
iterator end()
Definition std-vector.h:126
bool Confirm() const
Definition std-vector.h:138
T * pBegin_
Definition std-vector.h:183
~TVector()
Definition std-vector.h:46
extendFunc pfnExtend_
Definition std-vector.h:186