コンパイラ エラー C2441
'variable' : __declspec(process) と共に宣言されたシンボルは、/clr:pure モードで const である必要があります
解説
/clr:pure および /clr:safe コンパイラ オプションは Visual Studio 2015 では非推奨とされており、Visual Studio 2017 ではサポートされていません。
既定では、変数は、/clr:pure の下のアプリケーション ドメインごとです。 /clr:pure の下で __declspec(process)
とマークされた変数は、あるアプリケーション ドメインで変更され、別のアプリケーション ドメインで読み取られた場合、エラーが発生しやすくなります。
したがって、コンパイラでは、プロセスごとの変数 const
を /clr:pure の下に強制的に適用し、すべてのアプリケーション ドメインで読み取り専用にします。
詳細については、「process」と「/clr (共通言語ランタイムのコンパイル)」を参照してください。
例
次の例では警告 C2441 が生成されます。
// C2441.cpp
// compile with: /clr:pure /c
__declspec(process) int i; // C2441
__declspec(process) const int j = 0; // OK