次の方法で共有


コンパイラの警告 C4957

'cast': 'cast_from' から 'cast_to' への明示的なキャストは検証できません

解説

キャストにより、検証不可能なイメージが生成されます。

安全なキャストもあります (ユーザー定義の変換をトリガーする static_castconst_castなど)。 safe_cast は、検証可能なコードを生成することが保証されています。

詳細は、純粋で検証可能なコード (C++/CLI)を参照してください。

/clr:safe コンパイラ オプションは Visual Studio 2015 では非推奨とされており、Visual Studio 2017 ではサポートされていません。

この警告は、エラーとして表示されます。無効にするには、 warning プラグマ、または /wd コンパイラ オプションを使用します。

次の例では C4957 が生成されます。

// C4957.cpp
// compile with: /clr:safe
// #pragma warning( disable : 4957 )
using namespace System;
int main() {
   Object ^ o = "Hello, World!";
   String ^ s = static_cast<String^>(o);   // C4957
   String ^ s2 = safe_cast<String^>(o);   // OK
}