The template
HLAfixedRecord< HLAfixedField<INDEX1, DATATYPE1, HLAfixedField<INDEX2, DATATYPE2, ... > ... > TYPENAME;
defines an ordered sequence of DATATYPE entries.
The data can be accessed using the field<INDEX>() function. The INDEX is a logical identifier only. The data are stored in the declaration order.
For example:
+-------------+------------------------------------+----------------+-----------+ | | Field | | | | Record name +---------+--------------+-----------+ Encoding | Semantics | | | Name | Type | Semantics | | | +-------------+---------+--------------+-----------+----------------+-----------+ | | FIELD_X | HLAfloat32LE | | | | | +---------+--------------+-----------+ | | | Coordinates | FIELD_Y | HLAfloat32LE | | HLAfixedRecord | | | +---------+--------------+-----------+ | | | | FIELD_Z | HLAfloat32LE | | | | +-------------+---------+--------------+-----------+----------------+-----------+ enum { FIELD_X = 0, FIELD_Y, FIELD_Z }; typedef HLAfixedRecord< HLAfixedField<FIELD_X, HLAfloat32LE, HLAfixedField<FIELD_Y, HLAfloat32LE, HLAfixedField<FIELD_Z, HLAfloat32LE > > > > Coordinates; HLAdata<Coordinates> value; value->field<FIELD_X>() = 3.14; value->field<FIELD_Y>() = 6.28; value->field<FIELD_Z>() = 9.42;