The ANSI C++ profile is the base for all other C++ profiles. Other specialized C++ profiles must inherit from this profile by creating a generalization in modeling tool. Data TypesFundamental types defined by ANSI are mapped to a UML data type. You can state each fundamental type with a modifier (signed, unsigned, short, long) in a different order, but it is the same type. For example, you can use either short int or int short. Only versions defined as type by ANSI simple-type-specifiers are created as datatypes in the profile. If an UML synonym dataType is found during the reverse process, a class is created with this name. Each fundamental type has 3 corresponding cv-qualified versions: const, volatile, and Const Volatile qualified type. UML data types defined in the UML profile contain char, int, double, float, or void. We use these datatypes for mapping C++ type. These datatypes are specific. In UML 2, only Integer, Boolean, String, and UnlimitedNatural are defined; they are not defined as datatypes, but as primitives. Our modeling tool does not define UnlimitedNatural in any profile and Integer and boolean (b is lowercase) are datatypes. | PROFILE: UML Standard Profile. MagicDraw Profile.datatypes | 
|---|
 | Data Type | Synonym | Notes | 
|---|
 char | Char does not have a synonym | Char types are represented as signed char and unsigned char according to the compiler implementation.  |  int | Signed, signed int, int signed  | 
  |  double | Double does not have a synonym | 
  |  float | Float does not have a synonym | 
  |  void | Void does not have a synonym | 
  |  
 | PROFILE: C++ ANSI Profile.datatypes | 
|---|
 | Data Type | Synonym | Notes | 
|---|
 signed char | Signed char does not have a synonym | Char types are represented as signed char and unsigned char according to the compiler implementation. |  unsigned char | Unsigned char does not have a synonym |  unsigned int | unsigned, int unsigned  | 
  |  unsigned short int | unsigned short, short unsigned, unsigned int short, short unsigned int, short int unsigned, int short unsigned, int unsigned short  | 
  |  unsigned long int | unsigned long, long unsigned, unsigned int long, long unsigned int, long int unsigned, int long unsigned, int unsigned long  | 
  |  long int | long, int long, signed lon, long signed, signed long int, signed int long, long signed int, long int signed, int signed long,int long signed  | 
  |  short int | short, int short, signed short, short signed, signed short int, signed int short, short signed int, short int signed, int signed short, int short signed  | 
  |  long double | Long double does not have a synonym | 
  |  bool | Bool does not have a synonym | 
  |  wchar_t | wchar_t does not have a synonym | 
  |  
  |