basearray.h File Reference

Classes

struct  HasGetBlocksHelper< typename, typename >
 
struct  HasGetBlocksHelper< T, std::void_t< decltype(std::declval< T >().GetBlocks())> >
 
class  BaseArray< T, MINCHUNKSIZE, MEMFLAGS, ALLOCATOR >
 
struct  GenericCastMemberTrait< BaseArray< TO >, BaseArray< FROM >, SAFE >
 
class  BaseArraySelector< MINCHUNKSIZE, MEMFLAGS, ALLOCATOR >
 
class  BufferedBaseArraySelector< COUNT, MINCHUNKSIZE, MEMFLAGS, ALLOCATOR >
 
struct  IsZeroInitialized< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, ALLOCATOR > >
 

Namespaces

 maxon
 

Typedefs

template<typename T , Int COUNT, Int MINCHUNKSIZE = COUNT, BASEARRAYFLAGS MEMFLAGS = BASEARRAYFLAGS::NONE, typename ALLOCATOR = DefaultAllocator>
using BufferedBaseArray = typename BufferedBaseArraySelector< COUNT, MINCHUNKSIZE, MEMFLAGS, ALLOCATOR >::template Type< T >
 

Enumerations

enum class  BASEARRAYFLAGS {
  NONE ,
  MOVEANDCOPYOBJECTS ,
  ZEROINITIALIZE ,
  NOMOVE
}
 

Functions

enum maxon::BASEARRAYFLAGS MAXON_ENUM_FLAGS (BASEARRAYFLAGS)
 

Variables

 NONE
 
 MOVEANDCOPYOBJECTS
 
 ZEROINITIALIZE
 
 NOMOVE
 
static const Int BASEARRAY_DEFAULT_CHUNK_SIZE
 

Variable Documentation

◆ NONE

NONE

Use constructor/destructor or move operator unless the type is trivially copyable using memcpy, memmove or realloc.

◆ MOVEANDCOPYOBJECTS

MOVEANDCOPYOBJECTS

Elements are PODs and can be copied using memcpy and moved using memmove/realloc (for Resize, Insert, Erase, Append etc.). Overrides the setting of std::is_trivially_copyable<T>

◆ ZEROINITIALIZE

ZEROINITIALIZE

Zero initializes before calling the constructor.

◆ NOMOVE

NOMOVE

The code which uses the BaseArray guarantees that no move of existing elements is necessary at all (EnsureCapacity is called initially with sufficient size, no Insert/Erase unless at end).