GenericBaseArray Class Reference

#include <generic_basearray.h>

Inheritance diagram for GenericBaseArray:

Detailed Description

A GenericBaseArray allows to operate on a BaseArray without knowing the element type of the array at compile time.

This array class contains no standard subscript operator because the DataType and the index must be available to access the elements. Use GenericBaseArray::GetPointer or GenericBaseArray::Get to access the elements.

Public Types

using ValueType = Generic
 
using Super = BaseArray< Char >
 

Public Member Functions

 GenericBaseArray ()
 
 ~GenericBaseArray ()
 
 GenericBaseArray (GenericBaseArray &&)=default
 
GenericBaseArrayoperator= (GenericBaseArray &&)=default
 
ResultMem EnsureCapacity (const DataType &elementType, Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::DEFAULT)
 
ResultMem SetCapacityHint (const DataType &elementType, Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::DEFAULT)
 
ResultMem Resize (const DataType &elementType, Int count, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::DEFAULT)
 
ResultRef< Generic > Append (const DataType &elementType)
 
ResultRef< Generic > Insert (const DataType &elementType, Int index)
 
ResultMem Insert (const DataType &elementType, Int index, const Block< const Generic > &values)
 
ResultMem Insert (const DataType &elementType, Int index, const MoveBlock< Generic > &values)
 
ResultMem Erase (const DataType &elementType, Int index, Int count=1)
 
ResultMem SwapErase (const DataType &elementType, Int index, Int count=1)
 
void Reset (const DataType &elementType)
 
void Flush (const DataType &elementType)
 
Result< void > CopyFrom (const DataType &elementType, const GenericBaseArray &other)
 
String ToString (const DataType &elementType, const FormatStatement *formatStatement) const
 
Bool IsEqual (const DataType &elementType, const GenericBaseArray &other, EQUALITY equality) const
 
HashInt GetHashCode (const DataType &elementType) const
 
UniqueHash GetUniqueHashCode (const DataType &elementType) const
 
Generic * GetPointer ()
 
Generic * GetPointerSlow (const DataType &elementType, Int index)
 
const Generic * GetPointerSlow (const DataType &elementType, Int index) const
 
Generic * GetPointer (const Int elementTypeSize, Int index)
 
const Generic * GetPointer (const Int elementTypeSize, Int index) const
 
template<typename T >
T & Get (Int index)
 
template<typename T >
const T & Get (Int index) const
 
Int GetMemorySize (const DataType &elementType) const
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool IsEmpty () const
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool IsPopulated () const
 

Friends

class GenericBaseArrayImpl
 
class BaseArrayDataTypeFunctions
 
class PointerGenericBaseArray
 

Additional Inherited Members

- Private Types inherited from BaseArray< Char >
using IsBaseArray = std::true_type
 
using AllocatorType = DefaultAllocator
 
using Iterator = BaseIterator< BaseArray, false >
 
using ConstIterator = BaseIterator< const BaseArray, false >
 
using Super = ArrayBase< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char, BaseArrayData< Char, BASEARRAYFLAGS::NONE, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
 
- Private Types inherited from Collection< COLLECTION, VALUETYPE, SUPER >
using Super = BaseCollection< COLLECTION, SUPER >
 
using ValueType = VALUETYPE
 
- Private Types inherited from BaseCollection< COLLECTION, SUPER >
using IsCollection = std::true_type
 
using IsBaseArray = std::false_type
 
- Private Member Functions inherited from BaseArray< Char >
MAXON_ATTRIBUTE_FORCE_INLINE BaseArray ()
 
MAXON_ATTRIBUTE_FORCE_INLINE BaseArray (const DefaultAllocator &a)
 
MAXON_ATTRIBUTE_FORCE_INLINE BaseArray (DefaultAllocator &&a)
 
MAXON_ATTRIBUTE_FORCE_INLINE BaseArray (BaseArray &&src)
 
MAXON_ATTRIBUTE_FORCE_INLINE ~BaseArray ()
 
 MAXON_OPERATOR_MOVE_ASSIGNMENT (BaseArray)
 
const Block< const Char > & ToBlock () const
 
const Block< Char > & ToBlock ()
 
const Block< const Char > & ToConstBlock () const
 
 operator const Block< const Char > & () const
 
 operator const Block< Char > & ()
 
 operator StridedBlock< const Char > () const
 
 operator StridedBlock< Char > ()
 
 operator Block< const Byte > () const
 
 operator Block< Byte > ()
 
void Reset ()
 
void Flush ()
 
MAXON_ATTRIBUTE_FORCE_INLINE Int GetCount () const
 
MAXON_ATTRIBUTE_FORCE_INLINE Int GetCapacityCount () const
 
MAXON_ATTRIBUTE_FORCE_INLINE const Charoperator[] (Int idx) const
 
MAXON_ATTRIBUTE_FORCE_INLINE Charoperator[] (Int idx)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef< CharAppend (ARG &&x)
 
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< sizeof...(ARGS) !=1, ResultRef< Char > >::type Append (ARGS &&... args)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (Block< typename std::remove_const< Char >::type > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (Block< const Char > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (const Block< typename std::remove_const< Char >::type > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (const Block< const Char > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (Block< typename std::remove_const< Char >::type > &&values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (Block< const Char > &&values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (MoveBlock< Char > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (const MoveBlock< Char > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (MoveBlock< Char > &&values)
 
MAXON_IMPLICIT MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (typename std::remove_const< Char >::type(&array)[N])
 
MAXON_IMPLICIT MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (const Char(&array)[N])
 
MAXON_IMPLICIT MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (BaseArray< Char, CS, MF, A > &a)
 
MAXON_IMPLICIT MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (const BaseArray< Char, CS, MF, A > &a)
 
MAXON_IMPLICIT MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (BaseArray< Char, CS, MF, A > &&a)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppend (const std::initializer_list< Char > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppendBlock (const Block< const Char > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharAppendBlock (const MoveBlock< Char > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef< CharInsert (Int position, ARG &&x)
 
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< sizeof...(ARGS) !=1, ResultRef< Char > >::type Insert (Int position, ARGS &&... args)
 
ResultPtr< CharInsert (Int position, Block< typename std::remove_const< Char >::type > &values)
 
ResultPtr< CharInsert (Int position, Block< const Char > &values)
 
ResultPtr< CharInsert (Int position, const Block< typename std::remove_const< Char >::type > &values)
 
ResultPtr< CharInsert (Int position, const Block< const Char > &values)
 
ResultPtr< CharInsert (Int position, Block< typename std::remove_const< Char >::type > &&values)
 
ResultPtr< CharInsert (Int position, Block< const Char > &&values)
 
ResultPtr< CharInsert (Int position, MoveBlock< Char > &values)
 
ResultPtr< CharInsert (Int position, const MoveBlock< Char > &values)
 
ResultPtr< CharInsert (Int position, MoveBlock< Char > &&values)
 
MAXON_IMPLICIT MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharInsert (Int position, BaseArray< Char, CS, MF, A > &a)
 
MAXON_IMPLICIT MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharInsert (Int position, const BaseArray< Char, CS, MF, A > &a)
 
MAXON_IMPLICIT MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr< CharInsert (Int position, BaseArray< Char, CS, MF, A > &&a)
 
ResultPtr< CharInsert (Int position, const std::initializer_list< Char > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT< IteratorInsert (Iterator position, ARGS &&... args)
 
ResultPtr< CharInsertBlock (Int position, const Block< const Char > &values)
 
ResultPtr< CharInsertBlock (Int position, const MoveBlock< Char > &values)
 
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT< IteratorInsertBlock (Iterator position, ARGS &&... args)
 
ResultPtr< CharErase (Int position, Int eraseCnt=1)
 
Iterator Erase (Iterator position, Int eraseCnt=1)
 
ResultMem SwapErase (Int position, Int eraseCnt=1)
 
Iterator SwapErase (Iterator position, Int eraseCnt=1)
 
MAXON_ATTRIBUTE_FORCE_INLINE Int GetBlock (Int position, Block< const Char, STRIDED > &block) const
 
MAXON_ATTRIBUTE_FORCE_INLINE Int GetBlock (Int position, Block< Char, STRIDED > &block)
 
MAXON_ATTRIBUTE_FORCE_INLINE ConstIterator GetBlock (ConstIterator position, Block< const Char, STRIDED > &block) const
 
MAXON_ATTRIBUTE_FORCE_INLINE Iterator GetBlock (Iterator position, Block< Char, STRIDED > &block)
 
MAXON_ATTRIBUTE_FORCE_INLINE const CharGetFirst () const
 
MAXON_ATTRIBUTE_FORCE_INLINE CharGetFirst ()
 
MAXON_ATTRIBUTE_FORCE_INLINE const CharGetLast () const
 
MAXON_ATTRIBUTE_FORCE_INLINE CharGetLast ()
 
ResultMem Resize (Int newCnt, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::DEFAULT)
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool Pop (Char *dst=nullptr)
 
MAXON_ATTRIBUTE_FORCE_INLINE Int GetIndex (const Char &x) const
 
ResultMem EnsureCapacity (Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
 
ResultMem SetCapacityHint (Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
 
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > AppendAllImpl (BASEARRAY &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank1)
 
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > AppendAllImpl (BLOCK &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank2)
 
MAXON_ATTRIBUTE_FORCE_INLINE void Swap (Iterator a, Iterator b)
 
Int GetMemorySize () const
 
MAXON_ATTRIBUTE_FORCE_INLINE ConstIterator Begin () const
 
MAXON_ATTRIBUTE_FORCE_INLINE Iterator Begin ()
 
MAXON_ATTRIBUTE_FORCE_INLINE ConstIterator End () const
 
MAXON_ATTRIBUTE_FORCE_INLINE Iterator End ()
 
ResultMem MoveAndShrink (BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > &dst, Int position, Int moveCnt)
 
MAXON_ATTRIBUTE_FORCE_INLINE Block< CharDisconnect ()
 
MAXON_ATTRIBUTE_FORCE_INLINE void Connect (const Block< Char > &block, Int capacity=0)
 
MAXON_ATTRIBUTE_FORCE_INLINE DefaultAllocatorGetAllocator ()
 
MAXON_ATTRIBUTE_FORCE_INLINE const DefaultAllocatorGetAllocator () const
 
UniqueHash GetUniqueHashCode () const
 
- Private Member Functions inherited from ArrayBase< COLLECTION, VALUETYPE, SUPER, HASH >
template<typename... ARGS>
constexpr MAXON_ATTRIBUTE_FORCE_INLINE ArrayBase (ARGS &&... args)
 
ArrayImpl< COLLECTION & > ToArray ()
 
ArrayImpl< const COLLECTION & > ToArray () const
 
MAXON_ATTRIBUTE_FORCE_INLINE operator ArrayImpl< COLLECTION & > ()
 
MAXON_ATTRIBUTE_FORCE_INLINE operator ArrayImpl< const COLLECTION & > () const
 
- Private Member Functions inherited from ArrayBase0< COLLECTION, VALUETYPE, SUPER, HASH >
template<typename... ARGS>
constexpr MAXON_ATTRIBUTE_FORCE_INLINE ArrayBase0 (ARGS &&... args)
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator< (const COLLECTION2 &other) const
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator<= (const COLLECTION2 &other) const
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator> (const COLLECTION2 &other) const
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator>= (const COLLECTION2 &other) const
 
template<typename COMPARE = EqualityCompare, typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, COMPARERESULT >::type Compare (const COLLECTION2 &other, COMPARE &&cmp=COMPARE()) const
 
Bool IsValidIndex (Int index) const
 
Result< void > CheckValidIndex (Int index) const
 
Int FindIndex (typename ByValueParam< VALUETYPE >::type v, Int start) const
 
Int FindLastIndex (typename ByValueParam< VALUETYPE >::type v) const
 
Int FindLastIndex (typename ByValueParam< VALUETYPE >::type v, Int start) const
 
Bool EraseFirst (typename ByValueParam< VALUETYPE >::type v)
 
Int EraseAll (typename ByValueParam< VALUETYPE >::type v)
 
template<typename COLLECTION2 >
Result< void > AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0)
 
template<typename COLLECTION2 >
Result< void > InsertAll (Int index, COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
 
template<typename COLLECTION2 >
Result< void > Add (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
 
template<typename COLLECTION2 >
Result< void > SubtractImpl (COLLECTION2 &&other, OverloadRank0)
 
template<typename COLLECTION2 , typename COMPARE >
Bool IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const
 
template<typename COLLECTION2 , typename COMPARE >
COMPARERESULT CompareImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const
 
HashInt GetHashCode () const
 
UniqueHash GetUniqueHashCode () const
 
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< COLLECTION > Slice (Int start)
 
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< const COLLECTION > Slice (Int start) const
 
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< COLLECTION > Slice (Int start, Int end)
 
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< const COLLECTION > Slice (Int start, Int end) const
 
BlockIterator< COLLECTION, VALUETYPE, false, false > GetBlocks ()
 
BlockIterator< COLLECTION, VALUETYPE, true, false > GetBlocks () const
 
BlockIterator< COLLECTION, VALUETYPE, false, true > GetStridedBlocks ()
 
BlockIterator< COLLECTION, VALUETYPE, true, true > GetStridedBlocks () const
 
- Private Member Functions inherited from Collection< COLLECTION, VALUETYPE, SUPER >
template<typename... ARGS>
MAXON_ATTRIBUTE_FORCE_INLINE Collection (ARGS &&... args)
 
ResultOk< void > VariadicAppend ()
 
template<typename V , typename... VALUES>
Result< void > VariadicAppend (V &&value, VALUES &&... rest)
 
 operator ValueReceiver< const VALUETYPE & > ()
 
 operator ValueReceiver< VALUETYPE && > ()
 
 operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT (scalar, VALUETYPE)
 
DummyParamType & type ()
 
template<typename FN >
Result< BoolForEach (FN &&callback) const
 
template<typename FN >
Result< BoolForEach (FN &&callback)
 
template<typename H = COLLECTION>
H::Iterator Find (typename ByValueParam< VALUETYPE >::type v)
 
template<typename H = COLLECTION>
H::ConstIterator Find (typename ByValueParam< VALUETYPE >::type v) const
 
Int FindIndex (typename ByValueParam< VALUETYPE >::type v) const
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool Contains (typename ByValueParam< VALUETYPE >::type v) const
 
- Private Member Functions inherited from BaseCollection< COLLECTION, SUPER >
template<typename... ARGS>
MAXON_ATTRIBUTE_FORCE_INLINE BaseCollection (ARGS &&... args)
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator== (const COLLECTION2 &other) const
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator!= (const COLLECTION2 &other) const
 
template<typename COMPARE = EqualityCompare, typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value &&!STD_IS_REPLACEMENT(same, typename std::decay< COMPARE >::type, EQUALITY), Bool >::type IsEqual (const COLLECTION2 &other, COMPARE &&cmp=COMPARE()) const
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE)
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Subtract (COLLECTION2 &&other)
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Intersect (const COLLECTION2 &other)
 
template<typename COLLECTION2 >
Bool Intersects (const COLLECTION2 &other) const
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > CopyFromImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank0)
 
template<typename COLLECTION2 >
Result< void > AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0)
 
template<typename COLLECTION2 >
Result< void > IntersectImpl (COLLECTION2 &&other, OverloadRank0)
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool IsEmpty () const
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool IsPopulated () const
 
String ToString (const FormatStatement *formatStatement=nullptr) const
 
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Bool ContainsAll (COLLECTION2 &&other) const
 
template<typename COLLECTION2 >
Bool ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const
 
- Static Private Member Functions inherited from Collection< COLLECTION, VALUETYPE, SUPER >
static const VALUETYPEGetMapKey (const VALUETYPE &key)
 
- Private Attributes inherited from Collection< COLLECTION, VALUETYPE, SUPER >
 VALUETYPE
 
- Static Private Attributes inherited from ArrayBase0< COLLECTION, VALUETYPE, SUPER, HASH >
static const COLLECTION_KIND KIND
 

Member Typedef Documentation

◆ ValueType

using ValueType = Generic

◆ Super

using Super = BaseArray<Char>

Constructor & Destructor Documentation

◆ GenericBaseArray() [1/2]

◆ ~GenericBaseArray()

◆ GenericBaseArray() [2/2]

Member Function Documentation

◆ operator=()

GenericBaseArray& operator= ( GenericBaseArray &&  )
default

◆ EnsureCapacity()

ResultMem EnsureCapacity ( const DataType elementType,
Int  requestedCapacity,
COLLECTION_RESIZE_FLAGS  resizeFlags = COLLECTION_RESIZE_FLAGS::DEFAULT 
)

◆ SetCapacityHint()

ResultMem SetCapacityHint ( const DataType elementType,
Int  requestedCapacity,
COLLECTION_RESIZE_FLAGS  resizeFlags = COLLECTION_RESIZE_FLAGS::DEFAULT 
)

◆ Resize()

ResultMem Resize ( const DataType elementType,
Int  count,
COLLECTION_RESIZE_FLAGS  resizeFlags = COLLECTION_RESIZE_FLAGS::DEFAULT 
)

◆ Append()

ResultRef<Generic> Append ( const DataType elementType)

◆ Insert() [1/3]

ResultRef<Generic> Insert ( const DataType elementType,
Int  index 
)

◆ Insert() [2/3]

ResultMem Insert ( const DataType elementType,
Int  index,
const Block< const Generic > &  values 
)

◆ Insert() [3/3]

ResultMem Insert ( const DataType elementType,
Int  index,
const MoveBlock< Generic > &  values 
)

◆ Erase()

ResultMem Erase ( const DataType elementType,
Int  index,
Int  count = 1 
)

◆ SwapErase()

ResultMem SwapErase ( const DataType elementType,
Int  index,
Int  count = 1 
)

◆ Reset()

void Reset ( const DataType elementType)

◆ Flush()

void Flush ( const DataType elementType)

◆ CopyFrom()

Result<void> CopyFrom ( const DataType elementType,
const GenericBaseArray other 
)

◆ ToString()

String ToString ( const DataType elementType,
const FormatStatement formatStatement 
) const

◆ IsEqual()

Bool IsEqual ( const DataType elementType,
const GenericBaseArray other,
EQUALITY  equality 
) const

◆ GetHashCode()

HashInt GetHashCode ( const DataType elementType) const

◆ GetUniqueHashCode()

UniqueHash GetUniqueHashCode ( const DataType elementType) const

◆ GetPointer() [1/3]

Generic* GetPointer ( )

◆ GetPointerSlow() [1/2]

Generic* GetPointerSlow ( const DataType elementType,
Int  index 
)

◆ GetPointerSlow() [2/2]

const Generic* GetPointerSlow ( const DataType elementType,
Int  index 
) const

◆ GetPointer() [2/3]

Generic* GetPointer ( const Int  elementTypeSize,
Int  index 
)

◆ GetPointer() [3/3]

const Generic* GetPointer ( const Int  elementTypeSize,
Int  index 
) const

◆ Get() [1/2]

T& Get ( Int  index)

◆ Get() [2/2]

const T& Get ( Int  index) const

◆ GetMemorySize()

Int GetMemorySize ( const DataType elementType) const

◆ IsEmpty()

Checks if the collection is empty. This is the same as GetCount() == 0

Returns
True if the collection does not contain any elements.

◆ IsPopulated()

Checks if the collection is populated. This is the same as GetCount() != 0

Returns
True if the collection contains any elements.

Friends And Related Function Documentation

◆ GenericBaseArrayImpl

friend class GenericBaseArrayImpl
friend

◆ BaseArrayDataTypeFunctions

friend class BaseArrayDataTypeFunctions
friend

◆ PointerGenericBaseArray

friend class PointerGenericBaseArray
friend