Arrays can be created using a templated class. This allows a degree of polymorphism to be used without needing to know the data type in the array.
Arrays can be accessed in a limited way using a TArray<class T> object. This is a templated class which can be constructed by any of the templated array classes: CArrayFixFlat<class T>, CArrayFixSeg<class T>, CArrayVarFlat<class T>, CArrayVarSeg<class T> and CArrayPakFlat<class T>.
It allows a degree of polymorphism amongst the array classes. It permits the operator[] and the Count() member functions of an array to be invoked without knowing the type of that array.