Blender
V3.3
|
#include <BLI_generic_array.hh>
Public Member Functions | |
GArray (Allocator allocator={}) noexcept | |
GArray (NoExceptConstructor, Allocator allocator={}) noexcept | |
GArray (const CPPType &type, int64_t size, Allocator allocator={}) | |
GArray (const CPPType &type, Allocator allocator={}) | |
GArray (const CPPType &type, void *buffer, int64_t size, Allocator allocator={}) | |
GArray (const GSpan span, Allocator allocator={}) | |
GArray (const GArray &other) | |
GArray (GArray &&other) | |
~GArray () | |
GArray & | operator= (const GArray &other) |
GArray & | operator= (GArray &&other) |
const CPPType & | type () const |
bool | is_empty () const |
int64_t | size () const |
const void * | data () const |
void * | data () |
const void * | operator[] (int64_t index) const |
void * | operator[] (int64_t index) |
operator GSpan () const | |
operator GMutableSpan () | |
GSpan | as_span () const |
GMutableSpan | as_mutable_span () |
Allocator & | allocator () |
const Allocator & | allocator () const |
void | reinitialize (const int64_t new_size) |
Protected Attributes | |
const CPPType * | type_ = nullptr |
void * | data_ = nullptr |
int64_t | size_ = 0 |
BLI_NO_UNIQUE_ADDRESS Allocator | allocator_ |
Definition at line 28 of file BLI_generic_array.hh.
|
inlinenoexcept |
The default constructor creates an empty array, the only situation in which the type is allowed to be null. This default constructor exists so GArray
can be used in containers, but the type should be supplied before doing anything else to the array.
Definition at line 44 of file BLI_generic_array.hh.
|
inlinenoexcept |
Definition at line 48 of file BLI_generic_array.hh.
|
inline |
Create and allocate a new array, with elements default constructed (which does not do anything for trivial types).
Definition at line 56 of file BLI_generic_array.hh.
|
inline |
Create an empty array with just a type.
Definition at line 67 of file BLI_generic_array.hh.
|
inline |
Take ownership of a buffer with a provided size. The buffer should be allocated with the same allocator provided to the constructor.
Definition at line 76 of file BLI_generic_array.hh.
|
inline |
Create an array by copying values from a generic span.
Definition at line 90 of file BLI_generic_array.hh.
|
inline |
Create an array by copying values from another generic array.
Definition at line 102 of file BLI_generic_array.hh.
|
inline |
Create an array by taking ownership of another array's data, clearing the data in the other.
Definition at line 109 of file BLI_generic_array.hh.
References blender::GArray< Allocator >::data_.
|
inline |
Definition at line 115 of file BLI_generic_array.hh.
References blender::GArray< Allocator >::data_, blender::CPPType::destruct_n(), blender::GArray< Allocator >::size_, and blender::GArray< Allocator >::type_.
|
inline |
Access the allocator used by this array.
Definition at line 201 of file BLI_generic_array.hh.
References blender::GArray< Allocator >::allocator_.
|
inline |
Definition at line 205 of file BLI_generic_array.hh.
References blender::GArray< Allocator >::allocator_.
|
inline |
Definition at line 193 of file BLI_generic_array.hh.
Referenced by blender::nodes::node_geo_interpolate_domain_cc::InterpolateDomain::get_varray_for_context(), and blender::tests::TEST().
|
inline |
Definition at line 188 of file BLI_generic_array.hh.
Referenced by blender::ed::spreadsheet::add_fields_as_extra_columns(), and blender::tests::TEST().
|
inline |
Definition at line 159 of file BLI_generic_array.hh.
References blender::GArray< Allocator >::data_.
|
inline |
Get a pointer to the beginning of the array.
Definition at line 155 of file BLI_generic_array.hh.
References blender::GArray< Allocator >::data_.
Referenced by blender::tests::TEST().
|
inline |
Definition at line 139 of file BLI_generic_array.hh.
References blender::GArray< Allocator >::size_.
Referenced by blender::tests::TEST().
|
inline |
Definition at line 182 of file BLI_generic_array.hh.
References BLI_assert, blender::GArray< Allocator >::data_, blender::GArray< Allocator >::size_, and blender::GArray< Allocator >::type_.
|
inline |
Definition at line 176 of file BLI_generic_array.hh.
References BLI_assert, blender::GArray< Allocator >::data_, blender::GArray< Allocator >::size_, and blender::GArray< Allocator >::type_.
|
inline |
Definition at line 123 of file BLI_generic_array.hh.
References blender::copy_assign_container().
|
inline |
Definition at line 128 of file BLI_generic_array.hh.
References blender::move_assign_container().
|
inline |
Definition at line 170 of file BLI_generic_array.hh.
References BLI_assert, blender::GArray< Allocator >::data_, POINTER_OFFSET, blender::CPPType::size(), blender::GArray< Allocator >::size_, and blender::GArray< Allocator >::type_.
|
inline |
Definition at line 164 of file BLI_generic_array.hh.
References BLI_assert, blender::GArray< Allocator >::data_, POINTER_OFFSET, blender::CPPType::size(), blender::GArray< Allocator >::size_, and blender::GArray< Allocator >::type_.
|
inline |
Destruct values and create a new array of the given size. The values in the new array are default constructed.
Definition at line 214 of file BLI_generic_array.hh.
References BLI_assert, blender::GArray< Allocator >::data_, blender::CPPType::default_construct_n(), blender::CPPType::destruct_n(), blender::GArray< Allocator >::size_, and blender::GArray< Allocator >::type_.
|
inline |
Return the number of elements in the array (not the size in bytes).
Definition at line 147 of file BLI_generic_array.hh.
References blender::GArray< Allocator >::size_.
Referenced by blender::tests::TEST().
|
inline |
Definition at line 133 of file BLI_generic_array.hh.
References BLI_assert, and blender::GArray< Allocator >::type_.
Referenced by blender::tests::TEST().
|
protected |
Definition at line 36 of file BLI_generic_array.hh.
Referenced by blender::GArray< Allocator >::allocator().
|
protected |
Definition at line 33 of file BLI_generic_array.hh.
Referenced by blender::GArray< Allocator >::data(), blender::GArray< Allocator >::GArray(), blender::GArray< Allocator >::operator GMutableSpan(), blender::GArray< Allocator >::operator GSpan(), blender::GArray< Allocator >::operator[](), blender::GArray< Allocator >::reinitialize(), and blender::GArray< Allocator >::~GArray().
|
protected |
Definition at line 34 of file BLI_generic_array.hh.
Referenced by blender::GArray< Allocator >::is_empty(), blender::GArray< Allocator >::operator GMutableSpan(), blender::GArray< Allocator >::operator GSpan(), blender::GArray< Allocator >::operator[](), blender::GArray< Allocator >::reinitialize(), blender::GArray< Allocator >::size(), and blender::GArray< Allocator >::~GArray().
|
protected |
The type of the data in the array, will be null after the array is default constructed, but a value should be assigned before any other interaction with the array.
Definition at line 32 of file BLI_generic_array.hh.
Referenced by blender::GArray< Allocator >::operator GMutableSpan(), blender::GArray< Allocator >::operator GSpan(), blender::GArray< Allocator >::operator[](), blender::GArray< Allocator >::reinitialize(), blender::GArray< Allocator >::type(), and blender::GArray< Allocator >::~GArray().