Integrations (PTC products, 3rd party products and code) > Code integration (Ada, ARINC 653, C, C#, C++, IDL, Java, SQL and VB) > C++ code > Generating C++ code > Generating C++ code > Mapping Information > Mapping information for state diagrams > Basic type mapping for C++ (C++ code)
  
Basic type mapping for C++ (C++ code)
The mapping of basic types is defined through the [Datatype Mappings] section of the Cppgen.ini file, which resides in the 'PTC Integrity Modeler\Modeler\System\CppGen' folder. If you create a basic type in the Model, you may have to map it to a C++ type in the Cppgen.ini file:
If the Basic Type name does not contain spaces and its case is as you want it generated, you do not have to map the Basic Type to a C++ type.
If the Basic Type name needs to be generated as a different type, you must map the Basic Type to a C++ type. For example, String=char*.
If the Basic Type name contains spaces, you must map the Basic Type to a C++ type. You can map a Basic Type name to itself, for example, unsigned long=unsigned long. Failure to do so results in spaces being generated as underscores. If you then reverse engineer the code, the data type will be changed to an uninterpreted data type in the Model that contains underscores instead of spaces.
If the Basic Type name has the wrong case, you must map the Basic Type to a C++ type with the correct case specified. For example, Short=short.
Cppgen.ini is installed with the following data type mappings defined (the Basic Type name to the left of the equals sign is not case sensitive, the C++ name to the right of the equals sign is case sensitive):
any=void*
Boolean=bool
Char=char
Date=char*
Double=double
Float=float
Int=int
Integer=int
long double=long double
long int=long int
long long int=long long int
long long=long long
Long=long
octet=int
short int=short int
Short=short
signed char=signed char
signed int=signed int
signed long int=signed long int
signed long long int=signed long long int
signed long long=signed long long
signed long=signed long
signed short int=signed short int
signed short=signed short
String=char*
unsigned __int64=unsigned __int64
unsigned char=unsigned char
unsigned int=unsigned int
unsigned long int=unsigned long int
unsigned long long int=unsigned long long int
unsigned long long=unsigned long long
unsigned long=unsigned long
unsigned short int=unsigned short int
unsigned short=unsigned short
void=void
If a data type is not defined, ACS uses the default specified in the [Datatype Default] section of the Cppgen.ini file.