| 
       array of const for other compilers  | 
    Top Previous Next | 
| 
 What is translated > Types > Arrays > Array parameters > array of const > array of const for other compilers 
 array of const is reproduced for other compilers by an ArrayOfConst class defined in d2c_sysvariant.h, ArrayOfConst is derived from std::vector<TVarRec>. 
 
 class ArrayOfConst : public std::vector<TVarRec> 
 
 A function declaration with such a parameter looks like: 
 
 procedure foo(Args : array of const); 
 -> 
 void foo ( const ArrayofConst& Args ); 
 
 
 The call of the function therefore converts as: 
 foo(['hello', 'world']); -> foo ( ArrayofConst&( "hello", "world" ) ); 
 
 Since the ArrayOfConst class has the size method in contrast to C++Builder an additional parameter isn't necessary. 
 
 TVarRec 
 For C++ versions before C++17 TVarRec is defined as a union of different C++ types and a VType field, which indicates which of that types the actual value has.For C++ 17 TVarRec ist defined as a std::variant. In both versions the number of different types that can be stored in TVarRec is less than the number in Delphi, because in C++ there is no difference between WideString and UnicodeString. Therefore there are double cases in case-/switch-statement. 
  | 
| 
       This page belongs to the DelphiXE2Cpp11 Documentation  | 
    DelphiXE2Cpp11 home Content |