Ampersand |
Top Previous Next |
What is translated > Tokens > Ampersand By means of an ampersand Delphi keywords can be used as identifiers, e.g. \Embarcadero\Studio\19.0\source\rtl\win\winrt\WinAPI.ShlObj.pas line 11032:
type tagDROPDESCRIPTION = record &type: TDropImageType;
or \Embarcadero\Studio\19.0\source\rtl\win\winrt\WinAPI.CommCtrl.pas line 1429:
&type: UINT;
The Delphi2Cpp pre-processor and parser can reckognize such tokens as identifiers, but the translation will result in type names that are forbidden in C++:
UINT &type;
There are four possibilities to handle such cases:
There is a case where the same identifiers are used with and without the ampersand.
TState = (Start, &Property, ObjectStart, &Object, ArrayStart, &Array, ConstructorStart, &Constructor, Closed, Error);
and e.g.
if FCurrentState = TState.Property then
then the identifier notations should be defined in the file for the identifiers in a unique way, e.g.:
&Array &Constructor &Object &Property Array Constructor Object Property
Another example is in \Embarcadero\Studio\19.0\source\rtl\win\winrt\WinAPI.DataRT.pas line 598:
property &Implementation: Xml_Dom_IXmlDomImplementation read get_Implementation;
\rtl\win\winrt\WinAPI.Devices.pas line 6078:
property &Function: Word read get_Function;
\rtl\win\winrt\WinAPI.CommonTypes.pas line 138/439/544/6163...
&End
Inside of the class TParallel in System.Threading there are a lot of overloaded "&For" functions.
|
This page belongs to the Delphi2Cpp Documentation |
Delphi2Cpp home Content |