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

The profile table and description in this section do not include the tagged value inherited from C++ ANSI profile.

Microsoft Visual C++ Stereotypes

VC++Class


«VC++Class» inherits from the «C++Class» and «VC++StorageClass»

NameMeta ClassConstraints
VC++ClassClass
TagTypeDescription
inheritance

inheritanceType[0..1] = single (Enumeration)

See inheritanceType 

Represents the utilization of VC++ keywords,

__single_inheritance,

__multiple_inheritance, and

__virtual_inheritance. 

abstractboolean[1] = false

Represents the utilization of keyword __abstract or abstract, depending on C++ dialects.

Inherited tagTypeDescription

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»

NameMeta ClassConstraints
VC++StructClass
Inherited TagTypeDescription

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
NameMeta ClassConstraints
VC++UnionClass
Inherited TagTypeDescription

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

NameMeta ClassConstraints

VC++Enumeration

Enumeration


TagTypeDescription

Type

Classifier[0..1]

Represents the type of enumeration literal

VC++Typedef <<VC++Typedef>> inherits from <<C++Typedef>> and <<VC++StorageClass>> 

NameMeta ClassConstraints

VC++Typedef

Class


Inherited TagTypeDescription

C++Attributes «VC++Element»

StringFor keeping C++ Attributes
VC++Attribute
NameMeta ClassConstraints
VC++AttributeProeprty
Inherited TagTypeDescription

C++Attributes «VC++Element» 

StringFor keeping C++Attributes
VC++Operation
NameMeta ClassConstraints
VC++OperationOperation
TagTypeDescription
callingConvention

callingConvention [0..1] (Enumeration)

See callingConvention

Represents the utilization of keywords.

  • __cdecl
  • __clrcall
  • __stdcall
  • __fastcall
  • __thiscall
__inlineboolean[1] = false

Represents the utilization of the __inline keyword.

__forceinlineboolean[1] = false

Represents the utilization of the __forceinline keyword.

Inherited TagTypeDescription

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

NameMeta ClassConstraints
VC++ParameterParameter
Inherited TagTypeDescription

C++Attributes «VC++Element»

StringFor keeping C++ Attributes

VC++StorageClass

«VC++StorageClass» is an abstract stereotype corresponding to extended declaration modifier of __declspec.

NameMeta ClassConstraints
VC++StorageClassElement
TagTypeDescription
declspeModifierStringFor keeping an extended declaration modifier of __declspec. See Extended storage-class attributes with __declspec 
VC++Element
NameMeta ClassConstraints
VC++ElementElement
TagTypeDescription
C++AttributesStringFor keeping C++Attributes
VC++Interface
NameMeta ClassDescription
VC++InterfaceInterfaceRepresents interface declaration with __interface keyword.
VC++Event
NameMeta ClassDescription
VC++EventOperation, PropertyRepresents interface, method or member declaration with __event keyword.
TagTypeDescription
isVirtualEventboolean[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».

LiteralDescription
singleRepresentation of __single_inheritance keyword.
multipleRepresentation of __multiple_inheritance keyword.
virtualRepresentation of __virtual_inheritance keyword.

callingConvention


callingConvention will be used as the value of the tag named “calling convention” under «VC++Operation»

LiteralDescription
__cdeclRepresents the utilization of __cdecl modifier.
__clrcallRepresents the utilization of __clrcall modifier.
__stdcallRepresents the utilization of __stdcall modifier.
__fastcallRepresents the utilization of __fastcall modifier.
__thiscallRepresents the utilization of __thiscall modifier.