Visual C++ の概念 : C/C++ プログラムのビルド
コンパイラの警告 (レベル 1) C4669
エラー メッセージ
'cast' : 変換が安全ではありません : 'class' はマネージ型オブジェクトです。キャストにマネージ型が含まれています。コンパイラは、ポインタ間でビット単位のコピーを実行してキャストを完了しますが、ほかのチェックは行われません。この警告を解決するには、マネージ メンバを含むクラスをキャストしないでください。
次の例では C4669 警告が生成されます。
// C4669.cpp
// compile with: /clr /W1
ref struct A {
int i;
Object ^ pObj; // remove the managed member to resolve the warning
};
ref struct B {
int j;
};
int main() {
A ^ a = gcnew A;
B ^ b = reinterpret_cast<B ^>(a); // C4669
}