GenericBaseArray Class Reference Data Structures

#include <generic_basearray.h>

Inheritance diagram for GenericBaseArray:

详细描述

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 >

公共成员函数

  GenericBaseArray ()
  ~GenericBaseArray ()
  GenericBaseArray ( GenericBaseArray &&)=default
GenericBaseArray operator= ( 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  重置 (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
Generic *  GetPointer ()
Generic *  GetPointer (const DataType &elementType, Int index)
const Generic *  GetPointer (const DataType &elementType, 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

Friends

class  GenericBaseArrayImpl
class  BaseArrayDataTypeFunctions

Additional Inherited Members

-  Private Types inherited from BaseArray< Char >
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 , DefaultAllocator , STD_IS_REPLACEMENT (empty, DefaultAllocator )>, DefaultCompare >
-  Private Types inherited from Collection< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char, BaseArrayData< Char, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
using  Super = BaseCollection < BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseArrayData< Char , DefaultAllocator , STD_IS_REPLACEMENT (empty, DefaultAllocator )> >
using  ValueType = Char
-  Private Types inherited from BaseCollection< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseArrayData< Char, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
using  IsCollection = std::true_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 ()
  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  重置 ()
void  Flush ()
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetCount () const
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetCapacityCount () const
const MAXON_ATTRIBUTE_FORCE_INLINE Char operator[] ( Int idx) const
MAXON_ATTRIBUTE_FORCE_INLINE Char operator[] ( Int idx)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < Char Append ()
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < Char Append (const Char &x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < Char Append ( Char &&x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr < Char Append (const Block < const Char > &values)
ResultPtr < Char Append (const MoveBlock < Char > &values)
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr < Char Append (const std::initializer_list< Char > &values)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < Char Insert ( Int position)
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT < Iterator Insert ( Iterator position)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < Char Insert ( Int position, const Char &x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT < Iterator Insert ( Iterator position, const Char &x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < Char Insert ( Int position, Char &&x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT < Iterator Insert ( Iterator position, Char &&x)
ResultPtr < Char Insert ( Int position, const Block < const Char > &values)
ResultPtr < Char Insert ( Int position, const std::initializer_list< Char > &values)
ResultPtr < Char Insert ( Int position, const MoveBlock < Char > &values)
ResultMemT < Iterator Insert ( Iterator position, const Block < const Char > &values)
ResultMemT < Iterator Insert ( Iterator position, const std::initializer_list< Char > &values)
ResultPtr < Char Erase ( 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)
const MAXON_ATTRIBUTE_FORCE_INLINE Char GetFirst () const
MAXON_ATTRIBUTE_FORCE_INLINE Char GetFirst ()
const MAXON_ATTRIBUTE_FORCE_INLINE Char GetLast () const
MAXON_ATTRIBUTE_FORCE_INLINE Char GetLast ()
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 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 < Char Disconnect ()
MAXON_ATTRIBUTE_FORCE_INLINE void  连接 (const Block < Char > &block, Int capacity=0)
MAXON_ATTRIBUTE_FORCE_INLINE DefaultAllocator GetAllocator ()
const MAXON_ATTRIBUTE_FORCE_INLINE DefaultAllocator GetAllocator () const
-  Private Member Functions inherited from ArrayBase< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char, BaseArrayData< Char, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
MAXON_ATTRIBUTE_FORCE_INLINE   ArrayBase (ARGS &&... args)
ArrayImpl < BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > & >  ToArray ()
ArrayImpl < const BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > & >  ToArray () const
MAXON_ATTRIBUTE_FORCE_INLINE   operator ArrayImpl< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > & > ()
MAXON_ATTRIBUTE_FORCE_INLINE   operator ArrayImpl< const BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > & > () const
-  Private Member Functions inherited from ArrayBase0< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char, BaseArrayData< Char, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
MAXON_ATTRIBUTE_FORCE_INLINE   ArrayBase0 (ARGS &&... args)
Bool   IsValidIndex ( Int index) const
Result < void >  CheckValidIndex ( Int index) const
Int   FindIndex (typename ByValueParam < Char >:: type v, Int start) const
Int   FindLastIndex (typename ByValueParam < Char >:: type v) const
Int   FindLastIndex (typename ByValueParam < Char >:: type v, Int start) const
Bool   EraseFirst (typename ByValueParam < Char >:: type v)
Int   EraseAll (typename ByValueParam < Char >:: type v)
Result < void >  AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0 )
Result < void >  InsertAll ( Int index, COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
Result < void >  添加 (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
Result < void >  SubtractImpl (COLLECTION2 &&other, OverloadRank0 )
Bool   IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0 ) const
HashInt   GetHashCode () const
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > >  切片 ( Int start)
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > >  切片 ( Int start) const
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > >  切片 ( Int start, Int end)
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator > >  切片 ( Int start, Int end) const
BlockIterator < BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char , false, false >  GetBlocks ()
BlockIterator < BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char , true, false >  GetBlocks () const
BlockIterator < BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char , false, true >  GetStridedBlocks ()
BlockIterator < BaseArray < Char , BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char , true, true >  GetStridedBlocks () const
-  Private Member Functions inherited from Collection< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char, BaseArrayData< Char, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
MAXON_ATTRIBUTE_FORCE_INLINE   Collection (ARGS &&... args)
ResultOk < void >  VariadicAppend ()
Result < void >  VariadicAppend (V &&value, VALUES &&... rest)
  operator ValueReceiver< const Char & > ()
  operator ValueReceiver< Char && > ()
  operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT (scalar, Char )
DummyParamType &  type ()
Result < Bool ForEach (FN &&callback) const
Result < Bool ForEach (FN &&callback)
H::Iterator  Find (typename ByValueParam < Char >:: type v)
H::ConstIterator  Find (typename ByValueParam < Char >:: type v) const
Int   FindIndex (typename ByValueParam < Char >:: type v) const
MAXON_ATTRIBUTE_FORCE_INLINE Bool   Contains (typename ByValueParam < Char >:: type v) const
-  Private Member Functions inherited from BaseCollection< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, BaseArrayData< Char, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
MAXON_ATTRIBUTE_FORCE_INLINE   BaseCollection (ARGS &&... args)
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type  operator== (const COLLECTION2 &other) const
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type  operator!= (const COLLECTION2 &other) const
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
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE )
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  Subtract (COLLECTION2 &&other)
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  Intersect (const COLLECTION2 &other)
Bool   Intersects (const COLLECTION2 &other) const
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  CopyFromImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank0 )
Result < void >  AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0 )
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
MAXON_ATTRIBUTE_FORCE_INLINE Bool   ContainsAll (COLLECTION2 &&other) const
Bool   ContainsAllImpl (COLLECTION2 &&other, OverloadRank0 ) const
-  Static Private Member Functions inherited from Collection< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char, BaseArrayData< Char, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
static const Char GetMapKey (const Char &key)
-  Private Attributes inherited from Collection< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char, BaseArrayData< Char, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
  VALUETYPE
-  Static Private Attributes inherited from ArrayBase0< BaseArray< Char, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >, Char, BaseArrayData< Char, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
static const COLLECTION_KIND   KIND

Member Typedef Documentation

◆  ValueType

using ValueType = Generic

◆  Super

using Super = BaseArray < Char >

构造函数 & 析构函数文档编制

◆  GenericBaseArray() [1/2]

GenericBaseArray ( )

◆  ~GenericBaseArray()

~ GenericBaseArray ( )

◆  GenericBaseArray() [2/2]

GenericBaseArray ( GenericBaseArray &&  )
default

成员函数文档编制

◆  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

◆  GetPointer() [1/3]

Generic* GetPointer ( )

◆  GetPointer() [2/3]

Generic* GetPointer ( const DataType elementType ,
Int   index  
)

◆  GetPointer() [3/3]

const Generic* GetPointer ( const DataType elementType ,
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

Friends And Related Function Documentation

◆  GenericBaseArrayImpl

friend class GenericBaseArrayImpl friend

◆  BaseArrayDataTypeFunctions

friend class BaseArrayDataTypeFunctions friend