Aviso do Compilador (nível 1) C4669
'cast' : conversão não segura: 'class' é um objeto de tipo gerenciado ou WinRT
Uma conversão contém um tipo Windows Runtime ou gerenciado. O compilador conclui a conversão executando uma cópia bit-wise de um ponteiro para o outro, mas não fornece nenhuma outra verificação. Para resolver esse aviso, não converta classes que contenham membros gerenciados ou tipos de Windows Runtime.
A seguinte amostra gera C4669 e mostra como corrigi-lo:
// 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
}