1D vector of data with reference semantics. More...
Public Types | |
| typedef SharedArray< T > | ThatClassType |
| typedef AbstractArray< T > | BaseClassType |
| 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 | |
| SharedArray ()=default | |
| Creates an empty array. | |
| SharedArray (Int64 asize, ConstReferenceType value) | |
| Creates an array of size elements containing the value value. | |
| SharedArray (long long asize) | |
| Creates an array of size elements containing the default value of type T(). | |
| SharedArray (long asize) | |
| Creates an array of size elements containing the default value of type T(). | |
| SharedArray (int asize) | |
| Creates an array of size elements containing the default value of type T(). | |
| SharedArray (unsigned long long asize) | |
| Creates an array of size elements containing the default value of type T(). | |
| SharedArray (unsigned long asize) | |
| Creates an array of size elements containing the default value of type T(). | |
| SharedArray (unsigned int asize) | |
| Creates an array of size elements containing the default value of type T(). | |
| SharedArray (const ConstArrayView< T > &aview) | |
| Creates an array by copying the values from the value view. | |
| SharedArray (const Span< const T > &aview) | |
| Creates an array by copying the values from the value view. | |
| SharedArray (const ArrayView< T > &aview) | |
| Creates an array by copying the values from the value view. | |
| SharedArray (const Span< T > &aview) | |
| Creates an array by copying the values from the value view. | |
| SharedArray (std::initializer_list< T > alist) | |
| SharedArray (const SharedArray< T > &rhs) | |
| Creates an array referencing rhs. | |
| SharedArray (const UniqueArray< T > &rhs) | |
| Creates an array by copying the values of rhs. | |
| SharedArray (IMemoryAllocator *allocator) | |
| Creates an empty array with a specific allocator allocator. | |
| SharedArray (const MemoryAllocationOptions &allocation_options) | |
| Creates an empty array with a specific allocator allocation_options. | |
| SharedArray (IMemoryAllocator *allocator, Int64 asize) | |
| Creates an array of asize elements with a specific allocator allocator. | |
| SharedArray (const MemoryAllocationOptions &allocation_options, Int64 asize) | |
| Creates an array of asize elements with a specific allocator allocator. | |
| SharedArray (IMemoryAllocator *allocator, Span< const T > rhs) | |
| Creates an array with the allocator allocator by copying the values rhs. | |
| void | operator= (const SharedArray< T > &rhs) |
| Changes the reference of this instance to that of rhs. | |
| void | operator= (const UniqueArray< T > &rhs) |
| Copies the values of rhs into this instance. | |
| void | operator= (const Span< const 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 ArrayView< T > &rhs) |
| Copies the values of the view rhs into this instance. | |
| void | operator= (std::initializer_list< T > alist) |
| ~SharedArray () override | |
| Destroys the array. | |
| SharedArray< T > | clone () const |
| Clones the array. | |
| 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). | |
Protected Member Functions | |
| void | _initReference (const ThatClassType &rhs) |
| void | _updateReferences () final |
| Update references. | |
| Integer | _getNbRef () final |
| Update references. | |
| bool | _isUseOwnMetaData () const final |
| Indicates if m_md refers to m_meta_data. | |
| void | _addReference (const ThatClassType *new_ref) |
| Inserts this instance into the linked list. The instance is inserted at the position of new_ref. | |
| void | _removeReference () |
| Removes this instance from the linked list of references. | |
| void | _checkFreeMemory () |
| Destroys the instance if no one references it anymore. | |
| void | _operatorEqual (const ThatClassType &rhs) |
| 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) |
| 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 | |
| void | _swapMetaData (AbstractArrayBase &rhs) |
| void | _copyMetaData (const AbstractArrayBase &rhs) |
| void | _allocateMetaData () |
| void | _deallocateMetaData (ArrayMetaData *md) |
| void | _checkValidSharedArray () |
Private Member Functions | |
| void | operator= (const Array< T > &rhs)=delete |
| Forbidden. | |
Private Attributes | |
| ThatClassType * | m_next = nullptr |
| Next reference in the linked list. | |
| ThatClassType * | m_prev = nullptr |
| Previous reference in the linked list. | |
Additional Inherited Members | |
| 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 vector of data with reference semantics.
To have a vector that uses value semantics (like std::vector), you must use the UniqueArray class.
Reference semantics work as follows:
In the previous example, a1 and a2 refer to the same area of memory and therefore a2[3] will have the same value as a1[3] (which is the value 2),
A shared array is deallocated when there are no more references to this array.
Definition at line 545 of file arccore/src/common/arccore/common/Array.h.
| typedef AbstractArray<T> Arcane::SharedArray< T >::BaseClassType |
Definition at line 556 of file arccore/src/common/arccore/common/Array.h.
| typedef ArrayTraits<T>::ConstReferenceType Arcane::AbstractArray< T >::ConstReferenceType |
Definition at line 174 of file AbstractArray.h.
| typedef SharedArray<T> Arcane::SharedArray< T >::ThatClassType |
Definition at line 555 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array of size elements containing the value value.
Definition at line 564 of file arccore/src/common/arccore/common/Array.h.
|
inlineexplicit |
Creates an array of size elements containing the default value of type T().
Definition at line 570 of file arccore/src/common/arccore/common/Array.h.
|
inlineexplicit |
Creates an array of size elements containing the default value of type T().
Definition at line 576 of file arccore/src/common/arccore/common/Array.h.
|
inlineexplicit |
Creates an array of size elements containing the default value of type T().
Definition at line 580 of file arccore/src/common/arccore/common/Array.h.
|
inlineexplicit |
Creates an array of size elements containing the default value of type T().
Definition at line 584 of file arccore/src/common/arccore/common/Array.h.
|
inlineexplicit |
Creates an array of size elements containing the default value of type T().
Definition at line 588 of file arccore/src/common/arccore/common/Array.h.
|
inlineexplicit |
Creates an array of size elements containing the default value of type T().
Definition at line 592 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array by copying the values from the value view.
Definition at line 596 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array by copying the values from the value view.
Definition at line 603 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array by copying the values from the value view.
Definition at line 610 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array by copying the values from the value view.
Definition at line 617 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Definition at line 623 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array referencing rhs.
Definition at line 630 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array by copying the values of rhs.
Definition at line 1145 of file arccore/src/common/arccore/common/Array.h.
References Arcane::AbstractArray< T >::_initFromSpan(), Arcane::Array< T >::constSpan(), m_next, and m_prev.
|
inlineexplicit |
Creates an empty array with a specific allocator allocator.
Definition at line 644 of file arccore/src/common/arccore/common/Array.h.
|
inlineexplicit |
Creates an empty array with a specific allocator allocation_options.
Definition at line 654 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array of asize elements with a specific allocator allocator.
If ArrayTraits<T>::IsPODType is TrueType, the elements are not initialized. Otherwise, the default constructor of T is used.
Definition at line 668 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array of asize elements with a specific allocator allocator.
If ArrayTraits<T>::IsPODType is TrueType, the elements are not initialized. Otherwise, the default constructor of T is used.
Definition at line 680 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Creates an array with the allocator allocator by copying the values rhs.
Definition at line 689 of file arccore/src/common/arccore/common/Array.h.
|
inlineoverride |
Destroys the array.
Definition at line 736 of file arccore/src/common/arccore/common/Array.h.
|
inlineprotected |
Inserts this instance into the linked list. The instance is inserted at the position of new_ref.
Definition at line 791 of file arccore/src/common/arccore/common/Array.h.
|
inlineprotected |
Destroys the instance if no one references it anymore.
Definition at line 810 of file arccore/src/common/arccore/common/Array.h.
|
inlinefinalprotectedvirtual |
Update references.
Reimplemented from Arcane::AbstractArray< T >.
Definition at line 769 of file arccore/src/common/arccore/common/Array.h.
|
inlineprotected |
Definition at line 751 of file arccore/src/common/arccore/common/Array.h.
|
inlinefinalprotectedvirtual |
Indicates if m_md refers to m_meta_data.
This is the case for UniqueArray and UniqueArray2 but not for SharedArray and SharedArray2.
Reimplemented from Arcane::AbstractArrayBase.
Definition at line 781 of file arccore/src/common/arccore/common/Array.h.
|
inlineprotected |
Definition at line 817 of file arccore/src/common/arccore/common/Array.h.
|
inlineprotected |
Removes this instance from the linked list of references.
Definition at line 802 of file arccore/src/common/arccore/common/Array.h.
Referenced by Arcane::SharedArray< XmlNode >::~SharedArray().
|
inlinefinalprotectedvirtual |
Update references.
Reimplemented from Arcane::AbstractArray< T >.
Definition at line 760 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Clones the array.
Definition at line 744 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Copies the values of the view rhs into this instance.
Definition at line 723 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Copies the values of the view rhs into this instance.
Definition at line 717 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Changes the reference of this instance to that of rhs.
Definition at line 697 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Copies the values of the view rhs into this instance.
Definition at line 705 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Copies the values of the view rhs into this instance.
Definition at line 711 of file arccore/src/common/arccore/common/Array.h.
|
inline |
Copies the values of rhs into this instance.
Definition at line 1158 of file arccore/src/common/arccore/common/Array.h.
References Arcane::Array< T >::copy().
|
inline |
Definition at line 728 of file arccore/src/common/arccore/common/Array.h.
|
private |
Next reference in the linked list.
Definition at line 831 of file arccore/src/common/arccore/common/Array.h.
Referenced by Arcane::SharedArray< XmlNode >::_addReference(), and SharedArray().
|
private |
Previous reference in the linked list.
Definition at line 832 of file arccore/src/common/arccore/common/Array.h.
Referenced by Arcane::SharedArray< XmlNode >::_addReference(), and SharedArray().