5#ifndef __UTIL_ARRAY_H__
6#define __UTIL_ARRAY_H__
25template<
typename T,
size_t alignment = MIN_ALIGNMENT_CPU_DATA_TYPES>
class array {
45 if (from.datasize_ == 0) {
52 if (from.datasize_ > 0) {
102 return !(*
this == other);
144 if (newdata ==
NULL) {
161 T *
resize(
size_t newsize,
const T &value)
163 size_t oldsize =
size();
166 for (
size_t i = oldsize; i <
size(); i++) {
266 size_t old_size =
size();
267 resize(old_size + from.size());
283 throw std::bad_alloc();
296 inline void mem_copy(T *mem_to,
const T *mem_from,
const size_t N)
298 memcpy((
void *)mem_to, mem_from,
sizeof(T) *
N);
void util_aligned_free(void *ptr)
CCL_NAMESPACE_BEGIN void * util_aligned_malloc(size_t size, int alignment)
void append(const array< T > &from)
void steal_data(array &from)
T * resize(size_t newsize)
bool operator!=(const array< T > &other) const
array & operator=(const array &from)
array & operator=(const vector< T > &from)
void push_back_reserved(const T &t)
void set_data(T *ptr_, size_t datasize)
void mem_free(T *mem, size_t N)
void mem_copy(T *mem_to, const T *mem_from, const size_t N)
void reserve(size_t newcapacity)
T * resize(size_t newsize, const T &value)
T * mem_allocate(size_t N)
T & operator[](size_t i) const
void push_back_slow(const T &t)
bool operator==(const array< T > &other) const
#define CCL_NAMESPACE_END
void util_guarded_mem_free(size_t n)
void util_guarded_mem_alloc(size_t n)