Open array parameters

Top  Previous  Next

What is translated > Array parameters > Open array parameters


The concept of open arrays allow arrays of different sizes to be passed to the same procedure or function.


function Sum(Arr: Array of Integer): Integer;


 i: Integer;


  Result := 0;

  for i := Low(Arr) to High(Arr) do 

    Result := Result + Arr[i];




In C++ there is no counterpart to the function High, which typically is needed to use the open array. Therefore in C++ the value of the upper bound of the open array has to be passed together with a pointer to the first element of the array.


int __fastcall Sum( const int * Arr, int Arr_maxidx )


  int result;

  int i;

  result = 0;

  for ( i = 0 /* Low( Arr )*/; i <= Arr_maxidx /* High( Arr )*/; i++)

    result = result + Arr[i];

  return result;



If a temporary set of values is passed as open array parameter to a function, a corresponding array is produced in the C++ output, which is put in front of the function call.

This page belongs to the Delphi2Cpp Documentation

Delphi2Cpp home  Content