コンパイラの警告 C4957
'cast': 'cast_from' から 'cast_to' への明示的なキャストは検証できません
解説
キャストにより、検証不可能なイメージが生成されます。
安全なキャストもあります (ユーザー定義の変換をトリガーする static_cast
、 const_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
}