namespace stcdll {
public ref class C
{
public:
static const int SCI = 1;
literal int LI = 2;
};
}
このstcdll.dllを使うプログラムを考えます。
#using "stcdll.dll"
int main()
{
int a[stcdll::C::LI]; // OK
int b[stcdll::C::SCI]; // Error
return 0;
}
literalで宣言した変数はコンパイル時でも値が読めるが、static constの方は読めない。
Visual C++ 2005 EEだと、実行時にstatic constの値を読むとアプリが落ちる。(おそらくバグ)