1

TObject has 3 (empty and undocumented) methods called CPP_ABI_1 through 3.

type
  TObject = class
  ...
  {$IFDEF CPP_ABI_SUPPORT}
    procedure CPP_ABI_1; virtual;
    procedure CPP_ABI_2; virtual;
    procedure CPP_ABI_3; virtual;
  {$ENDIF !CPP_ABI_SUPPORT}
  ...

What purpose do these methods serve and what would be a possible use case for these methods?

Johan
  • 74,508
  • 24
  • 191
  • 319
  • Looking in System.pas (in XE8) where `CPP_ABI_SUPPORT` is defined, there's a comment: `C++ ABI support a'la the Itanium C++ ABI.` – Jerry Dodge Aug 10 '15 at 17:48
  • I searched numerous RTL and FMX units for any implementation of these and could not find anything. Perhaps it's something Emba's planning on implementing soon. – Jerry Dodge Aug 10 '15 at 18:20
  • Just throwing it out there, might help: [link](http://stackoverflow.com/questions/2171177/what-is-application-binary-interface-abi) – Gixabel Aug 10 '15 at 23:18
  • Presumably these methods are used to make C++ and Delphi object layouts binary compatible. But quite what combination of compilers this is relevant to I don't know. And when, or even whether, it is used I also do not know. Anyone with access to all the compilers could check to see if these methods are ever included. – David Heffernan Aug 11 '15 at 07:33

0 Answers0