Avertissement du compilateur C4957

'cast' : le cast explicite de 'cast_from' en 'cast_to' n’est pas vérifiable

Notes

Un cast aura pour résultat une image non vérifiable.

Certains casts sont « safe » (par exemple, un static_cast qui déclenche des conversions définies par l’utilisateur et un const_cast). Un safe_cast garantit la génération d’un code vérifiable.

Pour plus d’informations, consultez Code vérifiable et pur (C++/CLI).

L’option du compilateur /clr :safe est déconseillée dans Visual Studio 2015 et non prise en charge dans Visual Studio 2017.

Cet avertissement s’affiche comme une erreur et peut être désactivé avec le pragma warning ou l’option du compilateur /wd .

Exemple

L’exemple suivant génère l’erreur 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
}