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;

var

 i: Integer;

begin

  Result := 0;

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

    Result := Result + Arr[i];

end; 

 

 

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