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, OpenArrayCount values.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
Latest News |
08/26/24
Delphi2Cpp 2.4: Updated to RAD Studio 12.1 Athens [more...] |
01/29/24
Aurora2Cpp: Delphi 7 translator [more...] |
"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
|
This website is generated from plain text with [Minimal Website ]
|
Minimal Website
is made with TextTransformer
|
TextTransformer is made with Borland
CBuilder
|