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;
};