22template<
typename T, const
size_t alignment = MIN_ALIGNMENT_CPU_DATA_TYPES>
class array {
26 explicit array(
const size_t newsize)
110 return !(*
this == other);
122 from.
data_ =
nullptr;
152 if (newdata ==
nullptr) {
157 if (
data_ !=
nullptr) {
171 size_t oldsize =
size();
174 for (
size_t i = oldsize;
i <
size();
i++) {
183 if (
data_ !=
nullptr) {
241 if (
data_ !=
nullptr) {
274 size_t old_size =
size();
287 if (mem ==
nullptr) {
288 throw std::bad_alloc();
295 if (mem !=
nullptr) {
302 memcpy((
void *)mem_to, mem_from,
sizeof(
T) *
N);
CCL_NAMESPACE_BEGIN void * util_aligned_malloc(const size_t size, const int alignment)
void util_aligned_free(void *ptr, const size_t size)
void append(const array< T > &from)
void steal_data(array &from)
bool operator!=(const array< T > &other) const
array(const size_t newsize)
array & operator=(const array &from)
array & operator=(const vector< T > &from)
T * mem_allocate(const size_t N)
void push_back_reserved(const T &t)
void set_data(T *ptr_, size_t datasize)
T * resize(const size_t newsize, const T &value)
void mem_copy(T *mem_to, const T *mem_from, const size_t N)
void reserve(const size_t newcapacity)
T * resize(const size_t newsize)
T & operator[](size_t i) const
void push_back_slow(const T &t)
bool operator==(const array< T > &other) const
void mem_free(T *mem, const size_t N)
#define CCL_NAMESPACE_END
#define assert(assertion)