array of const vs. set's

Top  Previous  Next

What is translated > Array parameters > array of const > array of const vs. set's

 

 

Delphi2Cpp decides by the expected parameter type how the set argument is translated:

 

 

procedure foo(arr : array of const);

procedure bar(set : TCharSet);

 

foo(['hello', 'world']);

bar(['hello', 'world']);

 

 ->

 

#define test__0 (System::Set< AnsiString, 0, 255 >() << AnsiString ( "hello" ) << AnsiString ( "world" ) )

 

void __fastcall foo (  TVarRec* arr, const int arr_size );

void __fastcall bar ( TStringSet set );

  

foo ( ARRAYOFCONST(( "hello", "world" )) );

bar ( test__0 );

 

 

If such an  array is passed further to another function, then Delphi2Cpp takes care that the second parameter is also passed in the C++ code.

 

procedure foo2(var arr: array of const);

begin

  bar2( arr );

end;

 

->

  

void __fastcall foo2 ( TVarRec* arr, const int arr_high )

{

  bar2 ( arr, arr_high );

}

 

 



This page belongs to the Delphi2Cpp Documentation

Delphi2Cpp home  Content