105 other.data_ =
nullptr;
111 if (
data_ !=
nullptr) {
113 this->deallocate(
data_);
216 if (new_size <= old_size) {
220 void *new_data = this->allocate(new_size);
225 this->deallocate(new_data);
229 this->deallocate(
data_);
242 return allocator_.allocate(
size_t(size) * item_size, alignment, AT);
245 void deallocate(
void *
ptr)
#define POINTER_OFFSET(v, ofs)
#define BLI_NO_UNIQUE_ADDRESS
void default_construct_n(void *ptr, int64_t n) const
void destruct_n(void *ptr, int64_t n) const
void copy_assign_n(const void *src, void *dst, int64_t n) const
bool pointer_has_valid_alignment(const void *ptr) const
int64_t alignment() const
GMutableSpan as_mutable_span()
void * operator[](int64_t index)
GArray & operator=(const GArray &other)
const CPPType & type() const
BLI_NO_UNIQUE_ADDRESS Allocator allocator_
const void * operator[](int64_t index) const
GArray(NoExceptConstructor, Allocator allocator={}) noexcept
GArray & operator=(GArray &&other)
void reinitialize(const int64_t new_size)
GArray(const GArray &other)
GArray(Allocator allocator={}) noexcept
GArray(const CPPType &type, int64_t size, Allocator allocator={})
GArray(const GSpan span, Allocator allocator={})
GArray(const CPPType &type, void *buffer, int64_t size, Allocator allocator={})
const void * data() const
const Allocator & allocator() const
GArray(const CPPType &type, Allocator allocator={})
const void * data() const
Container & copy_assign_container(Container &dst, const Container &src)
Container & move_assign_container(Container &dst, Container &&src) noexcept(std::is_nothrow_move_constructible_v< Container >)