Profile Name: Microsoft Visual C++
Profile Module Name: C++_MS_Profile.xml
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.
The profile table and description in this section do not include the tagged value inherited from C++ ANSI profile. |
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; |
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. |