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, 
OpenArrayCountvalues.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 english

 
Letzte Neuigkeiten
03.09.15
Delphi2Cpp 1.7.0 Neue Übersetzungsoptionen [mehr...]

30.01.12
Delphi2Cpp 1.6.3 Bessere KonstruKtion von Objekten [mehr...]



[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




Diese Homepage ist aus einfachen Texten mit [Minimal Website ]generiert.

Minimal Website
Minimal Website ist mit Hilfe des TextTransformers hergestellt.

TextTransformer
Der TextTransformer ist gemacht mit dem Borland CBuilder

  borland