t2t-soft

This article can be obsolete: Actual documentation online

Array of const


Arrays of const are similar to the open array parameters. The value of an array of const has to be represented by two values in C++: a pointer to a TVarRec and the Index of the last element of the array, which begins at the position which the pointer points to.


procedure foo(arr : array of const);

->

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


When such a functions is called, the macro ARRAYOFCONST is written into the C++ output. This macro is defined for the CBuilder C++ as:

#define ARRAYOFCONST(values) 
OpenArrayvalues, 
OpenArrayCountvalues.GetHigh()


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 a passed array is passed further to another function, then Delphi2Cpp takes care that the second parameter is also passed in the C++ code.

procedure foo(var arr: array of const);
begin
  bar( arr );
end;
->

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


   deutsch Deutsch


 
Latest News
05/18/26
Delphi2Cpp 2.7: Translation heuristics [more...]

11/18/25
Delphi2Cpp 2.6: Delphi Interfaces [more...]



"We have successfully completed the projects, and the applications are (for the most part) already running at our customers' sites."





"Thanks for your great work, really appreciate the work you have done on zlib and compiling ... test case."


Mattewada, Udayabhaskar
Nokia India 02/01/2021




[from case study...]

"A masterpiece -- Delphi2Cpp has exceeded all my expectations by far."


Tony Hürlimann
virtual-optima 08/20/2011



"First off, I have to say WOW! Delphi2Cpp is doing a *fantastic* job!"


Daniel Flower
linkrealms 01/15/2011



"Though we have not finished the conversion yet, I'm glad that we've found you and could transform Eurocap to C++ with the help of Delphi2CB and you. (And I'm also glad that we could help you to make Delphi2CB better😉)"


Gáspár Huba


 
This website is generated from plain text with [Minimal Website]

Minimal Website
 
Minimal Website is made with TextTransformer

TextTransformer
 
TextTransformer is made with Borland C++Builder

  Borland