# 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
FORCEINLINE void | Clear ()
| Clear (destroy) all items.
FORCEINLINE uint | Length () const
| return number of used items
FORCEINLINE bool | IsFull () const
| return true if array is full
FORCEINLINE bool | IsEmpty () const
| return true if array is empty
FORCEINLINE T * | Append ()
| add (allocate), but don't construct item
FORCEINLINE T * | AppendC ()
| add and construct item using default constructor
FORCEINLINE T & | operator[] (uint index)
| return item by index (non-const version)
FORCEINLINE const T & | operator[] (uint index) const
| return item by index (const version)

## Protected Member Functions

FORCEINLINE ArrayHeader & | Hdr ()
| return reference to the array header (non-const)
FORCEINLINE const ArrayHeader & | Hdr () const
| return reference to the array header (const)
FORCEINLINE uint & | RefCnt ()
| return reference to the block reference counter
FORCEINLINE 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)
static const uint | HeaderSize = sizeof(ArrayHeader)

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

template<class T, uint C>

FixedSizeArray< T, C >::FixedSizeArray | ( |  | ) | `[inline]`

Default constructor.

Preallocate space for items and header, then initialize header.

Definition at line 50 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 59 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 37 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