Next: , Up: Building Mixed Ada & C++ Programs


2.11.1 Interfacing to C++

GNAT supports interfacing with C++ compilers generating code that is compatible with the standard Application Binary Interface of the given platform.

Interfacing can be done at 3 levels: simple data, subprograms, and classes. In the first two cases, GNAT offers a specific Convention CPP that behaves exactly like Convention C. Usually, C++ mangles the names of subprograms, and currently, GNAT does not provide any help to solve the demangling problem. This problem can be addressed in two ways:

Interfacing at the class level can be achieved by using the GNAT specific pragmas such as CPP_Class and CPP_Virtual. See the GNAT Reference Manual for additional information.