OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

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.
| FixedSizeArray (const FixedSizeArray< T, C > &src)
| Copy constructor.
| ~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.

## 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

template<class T, uint C>

FixedSizeArray< T, C >::FixedSizeArray | ( |  | ) |
| inline

Default constructor.

Preallocate space for items and header, then initialize header.

Definition at line 54 of file fixedsizearray.hpp.

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 66 of file fixedsizearray.hpp.

## Field Documentation

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 >::Append(), FixedSizeArray< SubArray, 1024 >::Clear(), FixedSizeArray< SubArray, 1024 >::FixedSizeArray(), FixedSizeArray< SubArray, 1024 >::Hdr(), FixedSizeArray< SubArray, 1024 >::operator[](), and FixedSizeArray< SubArray, 1024 >::~FixedSizeArray().

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

- src/misc/fixedsizearray.hpp