この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン | ||
literalとstatic_const [2009/01/31 15:16] 192.168.0.63 作成 |
— (現在) | ||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== literalとstatic const ====== | ||
- | |||
- | 以下のファイルをライブラリとしてコンパイルしてstcdll.dllを作るとします。 | ||
- | |||
- | <code cpp> | ||
- | namespace stcdll { | ||
- | public ref class C | ||
- | { | ||
- | public: | ||
- | static const int SCI = 1; | ||
- | literal int LI = 2; | ||
- | }; | ||
- | } | ||
- | </code> | ||
- | このstcdll.dllを使うプログラムを考えます。 | ||
- | |||
- | <code cpp> | ||
- | #using "stcdll.dll" | ||
- | int main() | ||
- | { | ||
- | int a[stcdll::C::LI]; // OK | ||
- | int b[stcdll::C::SCI]; // Error | ||
- | return 0; | ||
- | } | ||
- | </code> | ||
- | |||
- | literalで宣言した変数はコンパイル時でも値が読めるが、static constの方は読めない。 | ||
- | |||
- | Visual C++ 2005 EEだと、実行時にstatic constの値を読むとアプリが落ちる。(おそらくバグ) | ||
- | |||
- |