Profile Name: Microsoft Visual C++
Profile Module Name: C++_MS_Profile.xml
Data type
The Microsoft Visual C++ profile includes only the data types that do not exist in the ANSI C++ profile. Microsoft C/C++ supports sized integer types. Declaration of 8-, 16-, 32-, or 64-bit integer variables can be done by using the __intn type specifier, where n is 8, 16, 32, or 64.
The types __int8, __int16, and __int32 are synonyms for the ANSI types that have the same size, and are useful for writing portable code that behaves identically across multiple platforms.
Microsoft Visual C++ Data Type
Stereotype
Profile Table
Microsoft Visual C++ Stereotypes
VC++Class
«VC++Class» inherits from the «C++Class» and «VC++StorageClass»
| Name | Meta Class | Constraints | 
|---|---|---|
| VC++Class | Class | |
| Tag | Type | Description | 
| inheritance | inheritanceType[0..1] = single (Enumeration) See inheritanceType  | Represents the utilization of VC++ keywords, __single_inheritance, __multiple_inheritance, and __virtual_inheritance.  | 
| abstract | boolean[1] = false | Represents the utilization of keyword __abstract or abstract, depending on C++ dialects.  | 
| Inherited tag | Type | Description | 
declspecModifier «VC++StorageClass»  | String | For keeping an extended declaration modifier of __declspec See Extended storage-class attributes with __declspec  | 
C++Attributes «VC++Element»  | String | For keeping C++ Attributes  | 
«VC++Struct» inherits from «C++Struct» and «VC++StorageClass»  | ||
| Name | Meta Class | Constraints | 
| VC++Struct | Class | |
| Inherited Tag | Type | Description | 
declspecModifier «VC++StorageClass»  | String | For keeping an extended declaration modifier of __declspec See Extended storage-class attributes with __declspec  | 
C++Attributes «VC++Element»  | String | For keeping C++ Attributes  | 
| VC++Union | ||
| Name | Meta Class | Constraints | 
| VC++Union | Class | |
| Inherited Tag | Type | Description | 
declspecModifier «VC++StorageClass»  | String | For keeping an extended declaration modifier of __declspec See Extended storage-class attributes with __declspec  | 
C++Attributes «VC++Element»  | String | For keeping C++ Attributes  | 
VC++Enumeration  | ||
| Name | Meta Class | Constraints | 
VC++Enumeration  | Enumeration  | |
| Tag | Type | Description | 
Type  | Classifier[0..1]  | Represents the type of enumeration literal  | 
VC++Typedef <<VC++Typedef>> inherits from <<C++Typedef>> and <<VC++StorageClass>>  | ||
| Name | Meta Class | Constraints | 
VC++Typedef  | Class  | |
| Inherited Tag | Type | Description | 
C++Attributes «VC++Element»  | String | For keeping C++ Attributes | 
| VC++Attribute | ||
| Name | Meta Class | Constraints | 
| VC++Attribute | Proeprty | |
| Inherited Tag | Type | Description | 
C++Attributes «VC++Element»  | String | For keeping C++Attributes | 
| VC++Operation | ||
| Name | Meta Class | Constraints | 
| VC++Operation | Operation | |
| Tag | Type | Description | 
| callingConvention | callingConvention [0..1] (Enumeration) See callingConvention  | Represents the utilization of keywords. 
  | 
| __inline | boolean[1] = false | Represents the utilization of the __inline keyword.  | 
| __forceinline | boolean[1] = false | Represents the utilization of the __forceinline keyword.  | 
| Inherited Tag | Type | Description | 
declspecModifier «VC++StorageClass»  | String | For keeping an extended declaration modifier of __declspec See Extended storage-class attributes with __declspec  | 
C++Attributes «VC++Element»  | String | For keeping C++ Attributes  | 
VC++Parameter  | ||
| Name | Meta Class | Constraints | 
| VC++Parameter | Parameter | |
| Inherited Tag | Type | Description | 
C++Attributes «VC++Element»  | String | For keeping C++ Attributes | 
VC++StorageClass «VC++StorageClass» is an abstract stereotype corresponding to extended declaration modifier of __declspec.  | ||
| Name | Meta Class | Constraints | 
| VC++StorageClass | Element | |
| Tag | Type | Description | 
| declspeModifier | String | For keeping an extended declaration modifier of __declspec. See Extended storage-class attributes with __declspec | 
| VC++Element | ||
| Name | Meta Class | Constraints | 
| VC++Element | Element | |
| Tag | Type | Description | 
| C++Attributes | String | For keeping C++Attributes | 
| VC++Interface | ||
| Name | Meta Class | Description | 
| VC++Interface | Interface | Represents interface declaration with __interface keyword. | 
| VC++Event | ||
| Name | Meta Class | Description | 
| VC++Event | Operation, Property | Represents interface, method or member declaration with __event keyword. | 
| Tag | Type | Description | 
| isVirtualEvent | boolean[1] = false | Supports virtual event as shown in the example below. // data member as event virtual __event ClickEventHandler*OnClick;  | 
Enumeration
inheritanceType
inheritanceType will be used as the value of the tag named "inheritance" under «VC++Class».
| Literal | Description | 
|---|---|
| single | Representation of __single_inheritance keyword. | 
| multiple | Representation of __multiple_inheritance keyword. | 
| virtual | Representation of __virtual_inheritance keyword. | 
callingConvention
callingConvention will be used as the value of the tag named “calling convention” under «VC++Operation»
| Literal | Description | 
|---|---|
| __cdecl | Represents the utilization of __cdecl modifier. | 
| __clrcall | Represents the utilization of __clrcall modifier. | 
| __stdcall | Represents the utilization of __stdcall modifier. | 
| __fastcall | Represents the utilization of __fastcall modifier. | 
| __thiscall | Represents the utilization of __thiscall modifier. | 

