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. |