The profile table and description in this section do not include the tagged value inherited from C++ ANSI profile. |
C++CLIClass
Name | Meta Class | Constraints |
---|---|---|
C++CLIClass | Class | |
Tag | Type | Description |
CLI Type | CLI Type[1] = ref (Enumeration) See CLI Type | Represents the utilization of ref class or value class keywords for defining a CLR class. |
Inherited Tag | Type | Description |
inheritance «VC++Class» | inheritanceType[0..1] = single (Enumeration) See inheritanceType | Represents the utilization of VC++ keywords, __single inheritance, __multiple_inheritance, and __virtual_inheritance. |
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 |
abstract | boolean[1] = false | Represents the utilization of an abstract keyword. |
accessSpecifier «C++CLIClassMember» | CLIvisibilityKind[0..1] (Enumeration) | Represents the usage of visibility kind introduced in C++/CLI, including:
|
C++CLIStruct
Name | Meta Class | Constraints |
---|---|---|
C++CLIStruct | Class | |
Inherited Tag | Type | Description |
managedType «C++CLIClass» | CLI Type[1] = ref (Enumeration) See CLI Type | Represents the utilization of a ref class or value class keywords for defining a CLR class. |
abstract | boolean[1] = false | Represents the utilization of an abstract keyword. |
inheritance «VC++Class» | inheritanceType[0..1] = single (Enumeration) See inheritanceType | Represent the utilization of VC++ keywords, __single inheritance, __multiple_inheritance, and __virtual_inheritance. |
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 |
C++CLIEnumeration
Name | Meta Class | Constraints |
---|---|---|
C++CLIEnumeration | Enumeration | |
Tag | Type | Descriptions |
declarationKeyword | classKey[1] = class (Enumeration) See classKey | Represents the utilization of enum class or enum struct keywords. See enum class, enum struct |
Inherited Tag | Type | Description |
type «VC++Enumeration» | Classifier[0..1] | Represents the type of enumeration literal |
C++CLIInterface
Name | Meta Class | Constraints |
---|---|---|
C++CLIInterface | Interface | |
Tag | Type | Description |
declarationKeyword | classKey[1] = class (Enumeration) See classKey | Represents the utilization of interface class or interface struct. keywords. See ref class, ref struct, value class, value struct, interface class, interface struct |
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 |
C++CLIClassMember
Name | Meta Class | Constraints |
---|---|---|
C++CLIClassMember | Operation, Property | This stereotype is an abstract stereotype for keeping access - Specifier tag definition. |
Tag | Type | Descriptions |
accessSpecifier | CLIvisibilityKind[0..1] (Enumeration) | Represents the usage of visibility kind introduced in C++/CLI including:
|
C++CLIAttribute
Name | Meta Class | Constraints |
---|---|---|
C++CLIAttribute | Property | |
Tag | Type | Descriptions |
field | attributeField[0..1 (Enumeration) See attributeField | Represents the usage of initonly or literal keywords. |
Inherited Tag | Type | Description |
accessSpecifier «C++CLIClassMember» | CLIvisibilityKind[0..1] (Enumeration) | Represents the usage of visibility kind introduced in C++/CLI including:
|
declspecModifier «VC++StorageClass» | String | For keeping extended declaration modifier of __declspec See Extended storage-class attributes with __declspec |
C++Attributes «VC++Element» | String | For keeping C++ Attributes |
C++CLIOperation
Name | Meta Class | Constraints |
---|---|---|
C++CLIOperation | Operation | |
Tag | Type | Descriptions |
abstract | boolean[1] = false | Represents the utilization of abstract keyword. |
overrideSpecifier | operationOverrideSpecification[0..1] (Enumeration) | Represents the utilization of C++/CLI operation override specification, new and override. |
explicitOverride | Operation[0..*] | Represents the usage of explicit override feature. |
Inherited Tag | Type | Description |
accessSpecifier «C++CLIClassMember» | CLIvisibilityKind[0..1] (Enumeration) | Represents the usage of visibility kind introduced in C++/CLI including:
|
callingConvention «VC++Operation» | callingConvention[0..1] See callingConvention | Represents the utilization of keywords.
|
C++Attributes «VC++Element» | String | For keeping C++ Attributes |
C++CLIProperty
«C++CLIProperty» is used to define a CLR property, which has the appearance of an ordinary data member, and can be written to or read from using the same syntax as a data member.
Name | Meta Class | Constraints |
---|---|---|
C++CLIProperty | Property | The stereotype must not be applied to the same attribute as «C++Attribute» or other stereotypes derived from «C++Attribute» |
Tag | Type | Descriptions |
propertyIndexType | String[0..*] | index type keeps the list of property index types. |
isVirtualProperty | boolean[1] = false | Specify whether the property. is virtual or not. |
propertyType | PropertyType[1] = property data member | Specify property type between:
|
Inherited Tag | Type | Description |
accessSpecifier «C++CLIClassMember» | CLIvisibilityKind[0..1] (Enumeration) | Represents the usage of visibility kind introduced in C++/CLI including:
|
C++CLIDelegate
Name | Meta Class | Constraints |
---|---|---|
C++CLIDelegate | Class | Declaration of delegate can be only in a managed type. The declaration of delegate cannot have attribute and operation. Represents the utilization of delegate keyword. |
Tag | Type | Descriptions |
C++CLIEvent | boolean[1] = false | Specify whether the event is virtual or not. |
Inherited Tag | Type | Description |
accessSpecifier «C++CLIClassMember» | CLIvisibilityKind[0..1] (Enumeration) See CLIvisibilityKind | Represents the usage of visibility kind introduced in C++/CLI including:
|
C++CLIGeneric
Name | Meta Class | Constraints |
---|---|---|
C++CLIGeneric | Class, Interface, Operation, Property | Represents the usage of a generic keyword. |
C++CLIGenericParameteredElement | Class | |
Tag | Type | Descriptions |
genericConstraintType | genericConstraintType[0..*] (Enumeration) | Specifies generic constraint type, including
|
C++CLIGeneralization
Name | Meta Class | Constraints |
---|---|---|
C++CLIGeneralizationParameteredElement | Class | |
Tag | Type | Descriptions |
genericConstraintType | genericConstraintType[0..*] (Enumeration) | Specifies generic constraint type, including
|
C++CLIGeneralization
Name | Meta Class | Constraints |
---|---|---|
C++CLIGeneralization | Generalization | |
Tag | Type | Descriptions |
CLIInheritanceVisibility | C++CLIGeneralizationVisibility[1] = none (Enumeration) | |
virtualInheritance | boolean[1] = false |
CLI Type
CLI Type will be used as value of tag named "CLI Type" under «C++CLIClass». The possible values are ref and value.
Literal | Description |
---|---|
ref | For defining a CLR reference class |
value | For defining a CLR value class |
operation OverrideSpecifier
operationOverrideSpecifier will be used as value of tag named "overrideSpecifier" under «VC++Operation». The possible values are new and override which are keywords that can be used to qualify override behavior for derivation.
Literal | Description |
---|---|
new | Indicates the use of a new keyword to qualify override behavior for derivation. In VC++, new is a keyword indicating that a virtual member will get a new slot in the table; the function does not override a base class method. |
override | Indicates the use of the override key to qualify override behavior for derivation. In VC++, override is a keyword indicating that a member of a managed type must override a base class or a base interface member. If there is no member to override, the compiler will generate an error. |
attributeField
attributeField will be used as the value of the tag named "field" under «C++CLIAttribute». The possible values are initonly and literal, keywords used to qualify the field type of attribute.
Literal | Description |
---|---|
initonly | Represents the utilization of initonly keyword. initonly indicates that variable assignment can only occur as part of the declaration or in a static constructor in the same class. |
literal | Represents the utilization of literal keyword. It is the native equivalent of static const variable. Constraint: Is Static and Is Read Only must be set to true. |
classKey
Literal | Description |
---|---|
class | Represents the keyword that has the word, class. |
struct | Represents the keyword that has the word, struct. |
Remark:
CLIvisibilityKind
Literal | Description |
---|---|
internal | Represents the internal visibility. |
protected public | Represents the protected public visibility. |
public protected | Represents the public protected visibility. |
private protected | Represents the private protected visibility. |
protected private | Represents the protected private visibility. |
genericConstraintType
Literal | Description |
---|---|
ref class | Represents the usage of the ref class keyword in a generic constraint clause. |
ref struct | Represents the usage of the ref struct keyword in a generic constraint clause. |
value class | Represents the usage of the value class keyword in a generic constraint clause. |
value struct | Represents the usage of the value strict keyword in a generic constraint clause. |
gcnew | Represents the usage of the gcnew keyword in a generic constraint clause. |
C++CLIGeneralizationVisibility
C++CLIGeneralizationVisibility is an enumeration inheriting from C++GeneralizationVisibility and CLIvisibility- Kind. Its literals include: