OpenTTD Source: FixedSizeArray< T, C > Struct Template Reference

OpenTTD Source 13.1

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
ArrayHeader & | Hdr ()
| return reference to the array header (non-const)
const ArrayHeader & | Hdr () 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 22 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 67 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 79 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 39 of file fixedsizearray.hpp.

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

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

- src/misc/fixedsizearray.hpp