Dieser Artikel kann veraltet sein: Aktuelle Dokumentation online (Englisch)
Array of const
"Arrays of const" sind dem "Open arrays" ähnlich. Der Wert eines array of const muss in C++ durch zwei Werte repräsentiert werden: einen TVarRec-Zeiger und den Index des letzten Elementes des Array's, das an der Position beginnt, auf die der Zeiger zeigt.
procedure foo(arr : array of const);
->
void __fastcall foo ( TVarRec* arr, const int Args_Size );
Wenn eine derartige Funktion mit einem set als Argument aufgerufen wird, wird das Makro ARRAYOFCONST in die C++ Ausgabe geschrieben. Dies Makro ist für den C++ CBuilder definiert als:
#define ARRAYOFCONST(values) OpenArrayvalues, OpenArrayCount values.GetHigh()
Delphi2Cpp entscheidet anhand des erwarteten Parametertyps wie das Set-Argument übersetzt wird:
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 );
Wird ein so übergebenes array an eine weitere Funktion weitergereicht, so sorgt Delphi2Cpp dafür, dass im C++ Code auch der zweite Parameter weitergereicht wird.
procedure foo(var arr: array of const); begin bar( arr ); end;
->
void __fastcall foo ( TVarRec* arr, const int arr_size ) { bar ( arr, arr_size ); }
english
Letzte Neuigkeiten |
28.10.24
Delphi2Cpp 2.5: in Groß- und Kleinschreibung mit Deklarationen übereinstimmende Symbolnamen [more...] |
08/26/24
Delphi2Cpp 2.4: Aktualisiert auf RAD Studio 12.1 Athen [more...] |
[aus Fallstudie...] "Eine Meisterleistung -- Delphi2Cpp hat alle meine Erwartungen weit übertroffen." Tony Hürlimann
virtual-optima
29.08.2011
|
"Ich muss mich nochmal für deinen Einsatz und die Qualität deiner Arbeit bedanken, das ist absolut überdurchschnittlich ..." Gerald Ebner
Significant Software
22.01.2010
|
Diese Homepage ist aus einfachen Texten mit [Minimal Website ]generiert.
|
Minimal Website ist mit Hilfe des TextTransformers hergestellt.
|
Der TextTransformer ist gemacht mit dem Borland
CBuilder
|