1D data array with pre-allocated stack buffer. More...
Public Types | |
| typedef ArrayTraits< T >::ConstReferenceType | ConstReferenceType |
| Public Types inherited from Arcane::Array< T > | |
| typedef AbstractArray< T > | BaseClassType |
| typedef ArrayTraits< T >::ConstReferenceType | ConstReferenceType |
| typedef ArrayIterator< const_pointer > | const_iterator |
| Type of the constant iterator over an array element. | |
| typedef const value_type * | const_pointer |
| Constant pointer type of an array element. | |
| typedef ConstReferenceType | const_reference |
| Type constant reference of an array element. | |
| typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
| typedef ptrdiff_t | difference_type |
| Type of a distance between array element iterators. | |
| typedef ArrayIterator< pointer > | iterator |
| Type of the iterator over an array element. | |
| typedef value_type * | pointer |
| Pointer type of an array element. | |
| typedef value_type & | reference |
| Type reference of an array element. | |
| typedef std::reverse_iterator< iterator > | reverse_iterator |
| typedef Int64 | size_type |
| Type indexing the array. | |
| typedef T | value_type |
| Type of the array elements. | |
| Public Types inherited from Arcane::AbstractArray< T > | |
| typedef ArrayTraits< T >::ConstReferenceType | ConstReferenceType |
| typedef ArrayTraits< T >::IsPODType | IsPODType |
| typedef AbstractArray< T > | ThatClassType |
| using | TrueImpl = T |
| typedef T | value_type |
| Type of the array elements. | |
| typedef value_type * | pointer |
| Pointer type of an array element. | |
| typedef const value_type * | const_pointer |
| Constant pointer type of an array element. | |
| typedef ArrayIterator< pointer > | iterator |
| Type of the iterator over an array element. | |
| typedef ArrayIterator< const_pointer > | const_iterator |
| Type of the constant iterator over an array element. | |
| typedef value_type & | reference |
| Type reference of an array element. | |
| typedef ConstReferenceType | const_reference |
| Type constant reference of an array element. | |
| typedef Int64 | size_type |
| Type indexing the array. | |
| typedef ptrdiff_t | difference_type |
| Type of a distance between array element iterators. | |
| typedef std::reverse_iterator< iterator > | reverse_iterator |
| typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
Public Member Functions | |
| SmallArray () | |
| Creates an empty array. | |
| SmallArray (Int64 req_size, ConstReferenceType value) | |
| Creates an array of size elements containing the value value. | |
| SmallArray (Int64 asize) | |
| Creates an array of asize elements containing the default value of type T(). | |
| SmallArray (Int32 asize) | |
| Creates an array of asize elements containing the default value of type T(). | |
| SmallArray (size_t asize) | |
| Creates an array of asize elements containing the default value of type T(). | |
| SmallArray (const ConstArrayView< T > &aview) | |
| Creates an array by copying the values from the view aview. | |
| SmallArray (const Span< const T > &aview) | |
| Creates an array by copying the values from the view aview. | |
| SmallArray (const ArrayView< T > &aview) | |
| Creates an array by copying the values from the view aview. | |
| SmallArray (const Span< T > &aview) | |
| Creates an array by copying the values from the view aview. | |
| SmallArray (std::initializer_list< T > alist) | |
| SmallArray (const Array< T > &rhs) | |
| Creates an array by copying the values rhs. | |
| void | operator= (const Array< T > &rhs) |
| Copies the values of rhs into this instance. | |
| void | operator= (const ArrayView< T > &rhs) |
| Copies the values of the view rhs into this instance. | |
| void | operator= (const Span< T > &rhs) |
| Copies the values of the view rhs into this instance. | |
| void | operator= (const ConstArrayView< T > &rhs) |
| Copies the values of the view rhs into this instance. | |
| void | operator= (const Span< const T > &rhs) |
| Copies the values of the view rhs into this instance. | |
| ~SmallArray () override | |
| Destroys the instance. | |
| template<Int32 N> | |
| SmallArray (SmallArray< T, N > &&rhs)=delete | |
| template<Int32 N> | |
| SmallArray< T, NbElement > | operator= (SmallArray< T, N > &&rhs)=delete |
| Public Member Functions inherited from Arcane::Array< T > | |
| operator ConstArrayView< T > () const | |
| operator ArrayView< T > () | |
| operator Span< const T > () const | |
| operator Span< T > () | |
| ConstArrayView< T > | constView () const |
| Constant view of this array. | |
| Span< const T > | constSpan () const |
| Constant view of this array. | |
| ConstArrayView< T > | subConstView (Int64 abegin, Int32 asize) const |
| Sub-view starting from element abegin and containing asize elements. | |
| ArrayView< T > | view () const |
| Mutable view of this array. | |
| Span< const T > | span () const |
| Immutable view of this array. | |
| Span< T > | span () |
| Mutable view of this array. | |
| SmallSpan< const T > | smallSpan () const |
| Immutable view of this array. | |
| SmallSpan< const T > | constSmallSpan () const |
| Immutable view of this array. | |
| SmallSpan< T > | smallSpan () |
| Mutable view of this array. | |
| ArrayView< T > | subView (Int64 abegin, Integer asize) |
| Sub-view starting from element abegin and containing asize elements. | |
| void | sample (ConstArrayView< Integer > indexes, ArrayView< T > result) const |
| Extracts a sub-array from a list of indices. | |
| void | add (ConstReferenceType val) |
| Adds element val to the end of the array. | |
| void | addRange (ConstReferenceType val, Int64 n) |
| Adds n elements of value val to the end of the array. | |
| void | addRange (ConstArrayView< T > val) |
| Adds n elements of value val to the end of the array. | |
| void | addRange (Span< const T > val) |
| Adds n elements of value val to the end of the array. | |
| void | addRange (ArrayView< T > val) |
| Adds n elements of value val to the end of the array. | |
| void | addRange (Span< T > val) |
| Adds n elements of value val to the end of the array. | |
| void | addRange (const Array< T > &val) |
| Adds n elements of value val to the end of the array. | |
| void | resize (Int64 s) |
| Changes the number of elements in the array to s. | |
| void | resize (Int64 s, ConstReferenceType fill_value) |
| Changes the number of elements in the array to s. | |
| void | resizeNoInit (Int64 s) |
| Resizes without initializing new values. | |
| void | reserve (Int64 new_capacity) |
| Reserves memory for new_capacity elements. | |
| void | shrink () |
| Reallocates to free unused memory. | |
| void | shrink (Int64 new_capacity) |
| Reallocates memory to have a capacity close to new_capacity. | |
| void | shrink_to_fit () |
| Reallocates to free unused memory. | |
| void | remove (Int64 index) |
| Removes the entity at index index. | |
| void | popBack () |
| Removes the last entity from the array. | |
| T & | at (Int64 i) |
| Element at index i. Always checks for overflows. | |
| ConstReferenceType | at (Int64 i) const |
| Element at index i. Always checks for overflows. | |
| void | setAt (Int64 i, ConstReferenceType value) |
| Sets the element at index i. Always checks for overflows. | |
| ConstReferenceType | item (Int64 i) const |
| Element at index i. | |
| void | setItem (Int64 i, ConstReferenceType v) |
| Element at index i. | |
| ConstReferenceType | operator[] (Int64 i) const |
| Element at index i. | |
| T & | operator[] (Int64 i) |
| Element at index i. | |
| ConstReferenceType | operator() (Int64 i) const |
| T & | operator() (Int64 i) |
| Element at index i. | |
| T & | back () |
| Last element of the array. | |
| ConstReferenceType | back () const |
| Last element of the array (const). | |
| T & | front () |
| First element of the array. | |
| ConstReferenceType | front () const |
| First element of the array (const). | |
| void | clear () |
| Removes the elements from the array. | |
| void | fill (ConstReferenceType value) |
| Fills the array with the value value. | |
| void | copy (Span< const T > rhs) |
| Copies the values from rhs into the instance. | |
| Array< T > | clone () const |
| Clones the array. | |
| const T * | unguardedBasePointer () const |
| T * | unguardedBasePointer () |
| const T * | data () const |
| Access to the root of the array without any protection. | |
| T * | data () |
| iterator | begin () |
| Iterator over the first element of the array. | |
| const_iterator | begin () const |
| Constant iterator over the first element of the array. | |
| iterator | end () |
| Iterator over the first element after the end of the array. | |
| const_iterator | end () const |
| Constant iterator over the first element after the end of the array. | |
| reverse_iterator | rbegin () |
| Reverse iterator over the first element of the array. | |
| const_reverse_iterator | rbegin () const |
| Reverse iterator over the first element of the array. | |
| reverse_iterator | rend () |
| Reverse iterator over the first element after the end of the array. | |
| const_reverse_iterator | rend () const |
| Reverse iterator over the first element after the end of the array. | |
| ArrayRange< pointer > | range () |
| Iteration range from the first to the last element. | |
| ArrayRange< const_pointer > | range () const |
| Iteration range from the first to the last element. | |
| void | push_back (ConstReferenceType val) |
| Adds the element val to the end of the array. | |
| Public Member Functions inherited from Arcane::AbstractArray< T > | |
| AbstractArray (const AbstractArray< T > &rhs)=delete | |
| AbstractArray< T > & | operator= (const AbstractArray< T > &rhs)=delete |
| void | dispose () |
| Frees the memory used by the array. | |
| operator ConstArrayView< T > () const | |
| operator Span< const T > () const | |
| operator SmallSpan< const T > () const | |
| Integer | size () const |
| Number of elements in the vector. | |
| Integer | length () const |
| Number of elements in the vector. | |
| Integer | capacity () const |
| Capacity (number of allocated elements) of the vector. | |
| Int64 | largeSize () const |
| Number of elements in the vector (in 64 bits). | |
| Int64 | largeLength () const |
| Number of elements in the vector (in 64 bits). | |
| Int64 | largeCapacity () const |
| Capacity (number of allocated elements) of the vector (in 64 bits). | |
| bool | empty () const |
| Capacity (number of allocated elements) of the vector. | |
| bool | contains (ConstReferenceType v) const |
| True if the array contains the value element v. | |
| ConstReferenceType | operator[] (Int64 i) const |
| Element at index i. | |
| ConstReferenceType | operator() (Int64 i) const |
| Element at index i. | |
| void | setMemoryLocationHint (eMemoryLocationHint new_hint) |
| Modifies the memory location information. | |
| void | _internalSetHostDeviceMemoryLocation (eHostDeviceMemoryLocation location) |
| Sets the physical location of the memory region. | |
| eHostDeviceMemoryLocation | hostDeviceMemoryLocation () const |
| Sets the physical location of the memory region. | |
| void | changeAllocator (const MemoryAllocationOptions &options, RunQueue *queue) |
| void | changeAllocator (const MemoryAllocationOptions &options) |
| void | printInfos (std::ostream &o) |
| Public Member Functions inherited from Arcane::AbstractArrayBase | |
| IMemoryAllocator * | allocator () const |
| MemoryAllocationOptions | allocationOptions () const |
| void | setDebugName (const String &name) |
| Sets the array name for debug information. | |
| String | debugName () const |
| Debug name (null if no name specified). | |
Static Public Attributes | |
| static constexpr Int32 | MemorySize = NbElement * SizeOfType |
Private Types | |
| using | BaseClassType = AbstractArray<T> |
Private Attributes | |
| char | m_stack_buffer [MemorySize] |
| Impl::StackMemoryAllocator | m_stack_allocator |
Static Private Attributes | |
| static constexpr Int32 | SizeOfType = static_cast<Int32>(sizeof(T)) |
| static constexpr Int32 | nb_element_in_buf = NbElement |
Additional Inherited Members | |
| Protected Member Functions inherited from Arcane::Array< T > | |
| Array (Array< T > &&rhs) ARCCORE_NOEXCEPT | |
| Move constructor (only for UniqueArray). | |
| void | _initFromInitializerList (std::initializer_list< T > alist) |
| Protected Member Functions inherited from Arcane::AbstractArray< T > | |
| AbstractArray () | |
| Constructs an empty vector with the default allocator. | |
| AbstractArray (ThatClassType &&rhs) ARCCORE_NOEXCEPT | |
| Move constructor. Should only be used by UniqueArray. | |
| AllocatedMemoryInfo | _currentMemoryInfo () const |
| void | _initFromSpan (const Span< const T > &view) |
| Initializes the array with the view view. | |
| void | _initFromAllocator (MemoryAllocationOptions o, Int64 acapacity, void *pre_allocated_buffer=nullptr) |
| Constructs an empty vector with a specific allocator a. | |
| void | _reserve (Int64 new_capacity) |
| Reserves memory for new_capacity elements. | |
| void | _internalRealloc (Int64 new_capacity, bool compute_capacity, RunQueue *queue=nullptr) |
| Reallocates the array for a new capacity equal to new_capacity. | |
| void | _internalReallocate (Int64 new_capacity, RunQueue *queue) |
| void | _internalDeallocate (RunQueue *queue=nullptr) |
| void | _internalAllocate (Int64 new_capacity, RunQueue *queue) |
| void | _copyFromMemory (const T *source) |
| virtual void | _updateReferences () |
| Update references. | |
| virtual Integer | _getNbRef () |
| Update references. | |
| void | _addRange (ConstReferenceType val, Int64 n) |
| Adds n elements of value val to the end of the array. | |
| void | _addRange (Span< const T > val) |
| Adds n elements of value val to the end of the array. | |
| void | _checkFreeMemory () |
| Destroys the instance if no one references it. | |
| void | _destroy () |
| void | _destroyRange (Int64, Int64, TrueType) |
| void | _destroyRange (Int64 abegin, Int64 aend, FalseType) |
| void | _createRangeDefault (Int64, Int64, TrueType) |
| void | _createRangeDefault (Int64 abegin, Int64 aend, FalseType) |
| void | _createRange (Int64 abegin, Int64 aend, ConstReferenceType value, TrueType) |
| void | _createRange (Int64 abegin, Int64 aend, ConstReferenceType value, FalseType) |
| void | _createRange (Int64 abegin, Int64 aend, const T *values) |
| void | _fill (ConstReferenceType value) |
| void | _clone (const ThatClassType &orig_array) |
| template<typename PodType> | |
| void | _resizeHelper (Int64 s, PodType pod_type, RunQueue *queue) |
| void | _resize (Int64 s) |
| void | _resizeNoInit (Int64 s, RunQueue *queue=nullptr) |
| Redimensionne sans initialiser les nouvelles valeurs. | |
| void | _clear () |
| void | _resize (Int64 s, ConstReferenceType value) |
| Redimensionne et remplit les nouvelles valeurs avec value. | |
| void | _copy (const T *rhs_begin, TrueType) |
| void | _copy (const T *rhs_begin, FalseType) |
| void | _copy (const T *rhs_begin) |
| void | _resizeAndCopyView (Span< const T > rhs) |
| Redimensionne l'instance et recopie les valeurs de rhs. | |
| void | _move (ThatClassType &rhs) ARCCORE_NOEXCEPT |
| Implements the move assignment operator. | |
| void | _swap (ThatClassType &rhs) ARCCORE_NOEXCEPT |
| Swaps the values of the instance with those of rhs. | |
| void | _shrink () |
| void | _shrink (Int64 new_capacity) |
| void | _reset () |
| Resets the array to an empty array. | |
| constexpr Integer | _clampSizeOffet (Int64 offset, Int32 asize) const |
| void | _assignFromArray (const AbstractArray< T > &rhs) |
| void | _setMP (TrueImpl *new_mp) |
| void | _setMP2 (TrueImpl *new_mp, ArrayMetaData *new_md) |
| bool | _isSharedNull () |
| Protected Member Functions inherited from Arcane::AbstractArrayBase | |
| virtual bool | _isUseOwnMetaData () const |
| Indicates if m_md refers to m_meta_data. | |
| void | _swapMetaData (AbstractArrayBase &rhs) |
| void | _copyMetaData (const AbstractArrayBase &rhs) |
| void | _allocateMetaData () |
| void | _deallocateMetaData (ArrayMetaData *md) |
| void | _checkValidSharedArray () |
| Static Protected Member Functions inherited from Arcane::AbstractArray< T > | |
| static constexpr Int64 | typeSize () |
| Static Protected Member Functions inherited from Arcane::AbstractArrayBase | |
| static constexpr RunQueue * | _nullRunQueue () |
| Explicit method for a null RunQueue. | |
| Protected Attributes inherited from Arcane::AbstractArray< T > | |
| T * | m_ptr = nullptr |
| Protected Attributes inherited from Arcane::AbstractArrayBase | |
| ArrayMetaData * | m_md = nullptr |
| ArrayMetaData | m_meta_data |
1D data array with pre-allocated stack buffer.
This class is used like UniqueArray but contains a fixed-size buffer to hold NbElement elements, which is used if the array contains at most NbElement elements. This avoids dynamic allocations when the number of elements is small.
If the array must contain more than NbElement elements, then standard dynamic allocation is used.
Definition at line 107 of file arccore/src/common/arccore/common/SmallArray.h.
|
private |
Definition at line 110 of file arccore/src/common/arccore/common/SmallArray.h.
| typedef ArrayTraits<T>::ConstReferenceType Arcane::AbstractArray< T >::ConstReferenceType |
Definition at line 174 of file AbstractArray.h.
|
inline |
Creates an empty array.
Definition at line 122 of file arccore/src/common/arccore/common/SmallArray.h.
References Arcane::AbstractArray< T >::_initFromAllocator().
Referenced by SmallArray(), SmallArray(), SmallArray(), SmallArray(), SmallArray(), SmallArray(), SmallArray(), SmallArray(), and SmallArray().
|
inline |
Creates an array of size elements containing the value value.
Definition at line 129 of file arccore/src/common/arccore/common/SmallArray.h.
References SmallArray().
|
inlineexplicit |
Creates an array of asize elements containing the default value of type T().
Definition at line 136 of file arccore/src/common/arccore/common/SmallArray.h.
References SmallArray().
|
inlineexplicit |
Creates an array of asize elements containing the default value of type T().
Definition at line 143 of file arccore/src/common/arccore/common/SmallArray.h.
References SmallArray().
|
inlineexplicit |
Creates an array of asize elements containing the default value of type T().
Definition at line 149 of file arccore/src/common/arccore/common/SmallArray.h.
References SmallArray().
|
inline |
Creates an array by copying the values from the view aview.
Definition at line 155 of file arccore/src/common/arccore/common/SmallArray.h.
References SmallArray().
|
inline |
Creates an array by copying the values from the view aview.
Definition at line 161 of file arccore/src/common/arccore/common/SmallArray.h.
References Arcane::AbstractArray< T >::_initFromSpan(), and SmallArray().
|
inline |
Creates an array by copying the values from the view aview.
Definition at line 168 of file arccore/src/common/arccore/common/SmallArray.h.
References SmallArray().
|
inline |
Creates an array by copying the values from the view aview.
Definition at line 174 of file arccore/src/common/arccore/common/SmallArray.h.
References SmallArray().
|
inline |
Definition at line 179 of file arccore/src/common/arccore/common/SmallArray.h.
|
inline |
Creates an array by copying the values rhs.
Definition at line 186 of file arccore/src/common/arccore/common/SmallArray.h.
References Arcane::Array< T >::constSpan(), and SmallArray().
|
inlineoverride |
Destroys the instance.
Definition at line 222 of file arccore/src/common/arccore/common/SmallArray.h.
References Arcane::AbstractArray< T >::_reset().
|
inline |
Copies the values of rhs into this instance.
Definition at line 192 of file arccore/src/common/arccore/common/SmallArray.h.
References Arcane::Array< T >::constSpan(), and Arcane::Array< T >::copy().
|
inline |
Copies the values of the view rhs into this instance.
Definition at line 198 of file arccore/src/common/arccore/common/SmallArray.h.
References Arcane::Array< T >::copy().
|
inline |
Copies the values of the view rhs into this instance.
Definition at line 210 of file arccore/src/common/arccore/common/SmallArray.h.
References Arcane::Array< T >::copy().
|
inline |
Copies the values of the view rhs into this instance.
Definition at line 216 of file arccore/src/common/arccore/common/SmallArray.h.
References Arcane::Array< T >::copy().
|
inline |
Copies the values of the view rhs into this instance.
Definition at line 204 of file arccore/src/common/arccore/common/SmallArray.h.
References Arcane::Array< T >::copy().
|
private |
Definition at line 240 of file arccore/src/common/arccore/common/SmallArray.h.
|
private |
Definition at line 239 of file arccore/src/common/arccore/common/SmallArray.h.
|
staticconstexpr |
Definition at line 117 of file arccore/src/common/arccore/common/SmallArray.h.
|
staticconstexprprivate |
Definition at line 112 of file arccore/src/common/arccore/common/SmallArray.h.
|
staticconstexprprivate |
Definition at line 111 of file arccore/src/common/arccore/common/SmallArray.h.