Next: Pragma CPP_Constructor, Previous: Pragma Convention_Identifier, Up: Implementation Defined Pragmas
pragma CPP_Class ([Entity =>] LOCAL_NAME);
The argument denotes an entity in the current declarative region that is declared as a tagged record type. It indicates that the type corresponds to an externally declared C++ class type, and is to be laid out the same way that C++ would lay out the type.
Types for which CPP_Class
is specified do not have assignment or
equality operators defined (such operations can be imported or declared
as subprograms as required). Initialization is allowed only by constructor
functions (see pragma CPP_Constructor
). Such types are implicitly
limited if not explicitly declared as limited or derived from a limited
type, and a warning is issued in that case.
Pragma CPP_Class
is intended primarily for automatic generation
using an automatic binding generator tool.
See Interfacing to C++ for related information.
Note: Pragma CPP_Class
is currently obsolete. It is supported
for backward compatibility but its functionality is available
using pragma Import
with Convention
= CPP
.