Sets |
Top Previous Next |
What is translated > Types > Sets
A Delphi set is simulated in the C++ VCL by the class Set:
template<class T, unsigned char minEl, unsigned char maxEl> class __declspec(delphireturn) Set;
This set class is part of the C++Builder VCL. Users of other compilers can use the emulation of Delphi set's in "DelphiSets.h" in the Source folder of the Delphi2Cppinstallation. This file is a contribution from Daniel Flower. The set type "System::Set" can be renamed to TSet, be means of the list of substitutions of the translator.
The use of set's is translated as follows:
MySet: set of 'a'..'z';
->
System::Set < char/* range 'a'..'z'*/, 97, 122 > MySet;
or
type TIntSet = set of 1..250;
->
typedef System::Set < int/* range 1..250*/, 1, 250 > TIntSet;
If there is no explicit type-declaration of a set, as e.g. in:
MySet := ['a','b','c'];
a helping macro and a helping type is created:
typedef System::Set < char, 97, 122 > test__0; #define test__1 ( test__0 () << char ( 97 ) << char ( 98 ) << char ( 99 ) )
MySet = test__1;
The names of such helping types can be adjusted to according names in the C++ Builder VCL by means of the list of substitutions of the translator. If a temporary set of values is passed as open array parameter to a function, a corresponding array is produced in the C++ output, which is put in front of the function call.
|
This page belongs to the Delphi2Cpp Documentation |
Delphi2Cpp home Content |