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/15/10
Delphi2Cpp 1.3.3 Bug fixes and other small improvements [more...] |
|
05/25/10
Delphi2Cpp 1.3.0 Developing in Delphi, compiling C++ [more...] |
|
This website is generated from plain text with [Minimal Website ]
|
Minimal Website
is made with TextTransformer
|
TextTransformer is made with Borland
CBuilder
|