The array
type is a template object that allow the scripts to declare arrays of any type. Since it is a generic class it is not the most performatic due to the need to determine characteristics at runtime. For that reason it is recommended that the application registers a template specialization for the array types that are most commonly used.
The type is registered with RegisterScriptArray(asIScriptEngine*)
.
class CScriptArray { public: // Constructor CScriptArray(asUINT length, asIObjectType *ot); virtual ~CScriptArray(); // Memory management void AddRef(); void Release(); // Type information asIObjectType *GetArrayObjectType() const; int GetArrayTypeId() const; int GetElementTypeId() const; // Get the current size asUINT GetSize(); // Resize the array void Resize(asUINT numElements); // Get a pointer to an element. Returns 0 if out of bounds void *At(asUINT index); // Copy the contents of one array to another (only if the types are the same) CScriptArray &operator=(const CScriptArray&); };
class array<class T> { array(); array(uint length);
// Access elements // T & operator [] (uint) // const T & operator [] (uint) const
array<T> opAssign(const array<T> & in);
uint length(); void resize(uint); }
int main() { array<int> arr(3); arr[0] = 1; arr[1] = 2; arr[2] = 3;
int sum = 0; for( uint n = 0; n < arr.length(); n++ ) sum += arr[n];
return sum; }