Sdílet prostřednictvím


Statické propojení Const Int už není literál

Deklarace konstanty člena třídy se změnila ze způsobů ze Správce rozšíření pro C++ na způsob z Visual C++ 2010.

Přestože integrální členy static const jsou stále podporovány, změnil se jejich propojený atribut. Jejich dřívější propojený atribut se provádí v literálu integrálního člena. Například, zvažte následující třídu spravovaného rozšíření:

public __gc class Constants {
public:
   static const int LOG_DEBUG = 4;
};

To vytváří následující podporované CIL atributy pro pole (všimněte si literálového atributu):

.field public static literal int32 
modopt([Microsoft.VisualC]Microsoft.VisualC.IsConstModifier) STANDARD_CLIENT_PRX = int32(0x00000004)

Zatímco se to stále kompiluje pod novou syntaxí:

public ref class Constants {
public:
   static const int LOG_DEBUG = 4;
};

již dále nevydává literální atribut, a proto není zobrazen jako konstanta za běhu CLR:

.field public static int32 modopt([Microsoft.VisualC]Microsoft.VisualC.IsConstModifier) STANDARD_CLIENT_PRX = int32(0x00000004)

Aby jsme měli stený mezi-jazykový literální atribut, měla by být deklarace změněna na nově podporovaný datový člen literal takto,

public ref class Constants {
public:
   literal int LOG_DEBUG = 4;
};

Viz také

Odkaz

literal (Visual C++)

Koncepty

Členské deklarace v rámci třídy nebo rozhraní