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