The interface to C++ makes use of the following pragmas, which are primarily intended to be constructed automatically using a binding generator tool, although it is possible to construct them by hand. No suitable binding generator tool is supplied with GNAT though.
Using these pragmas it is possible to achieve complete inter-operability between Ada tagged types and C class definitions. See Implementation Defined Pragmas, for more details.
pragma CPP_Class ([Entity =>]local_name
pragma CPP_Constructor ([Entity =>]local_name
Import) as corresponding to a C++ constructor.
pragma CPP_Vtable ...
CPP_Vtablepragma can be present for each component of type
CPP.Interfaces.Vtable_Ptrin a record to which pragma