OpenTTD
Data Structures | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
FixedSizeArray< T, C > Struct Template Reference

fixed size array Upon construction it preallocates fixed size block of memory for all items, but doesn't construct them. More...

#include <fixedsizearray.hpp>

Data Structures

struct  ArrayHeader
 header for fixed size array More...
 

Public Member Functions

 FixedSizeArray ()
 Default constructor. More...
 
 FixedSizeArray (const FixedSizeArray< T, C > &src)
 Copy constructor. More...
 
 ~FixedSizeArray ()
 destroy remaining items and free the memory block
 
void Clear ()
 Clear (destroy) all items.
 
uint Length () const
 return number of used items
 
bool IsFull () const
 return true if array is full
 
bool IsEmpty () const
 return true if array is empty
 
T * Append ()
 add (allocate), but don't construct item
 
T * AppendC ()
 add and construct item using default constructor
 
T & operator[] (uint index)
 return item by index (non-const version)
 
const T & operator[] (uint index) const
 return item by index (const version)
 

Protected Member Functions

ArrayHeaderHdr ()
 return reference to the array header (non-const)
 
const ArrayHeaderHdr () const
 return reference to the array header (const)
 
uint & RefCnt ()
 return reference to the block reference counter
 
uint & SizeRef ()
 return reference to number of used items
 

Protected Attributes

T * data
 the only member of fixed size array is pointer to the block of C array of items. More...
 

Static Protected Attributes

static const uint Tsize = sizeof(T)
 size of item
 
static const uint HeaderSize = sizeof(ArrayHeader)
 size of header
 

Detailed Description

template<class T, uint C>
struct FixedSizeArray< T, C >

fixed size array Upon construction it preallocates fixed size block of memory for all items, but doesn't construct them.

Item's construction is delayed.

Definition at line 24 of file fixedsizearray.hpp.

Constructor & Destructor Documentation

◆ FixedSizeArray() [1/2]

template<class T, uint C>
FixedSizeArray< T, C >::FixedSizeArray ( )
inline

Default constructor.

Preallocate space for items and header, then initialize header.

Definition at line 69 of file fixedsizearray.hpp.

◆ FixedSizeArray() [2/2]

template<class T, uint C>
FixedSizeArray< T, C >::FixedSizeArray ( const FixedSizeArray< T, C > &  src)
inline

Copy constructor.

Preallocate space for items and header, then initialize header.

Definition at line 81 of file fixedsizearray.hpp.

Field Documentation

◆ data

template<class T, uint C>
T* FixedSizeArray< T, C >::data
protected

the only member of fixed size array is pointer to the block of C array of items.

Header can be found on the offset -sizeof(ArrayHeader).

Definition at line 41 of file fixedsizearray.hpp.

Referenced by FixedSizeArray< SubArray, 1024 >::FixedSizeArray().


The documentation for this struct was generated from the following file: