Avertissement du compilateur C4972

La modification ou le traitement direct du résultat d'une conversion unboxing comme lvalue est non vérifiable

Quand vous procédez au déréférencement d’un handle en un type valeur, (également appelé « conversion unboxing »), puis effectuez une assignation à celui-ci, le résultat est non vérifiable.

Pour plus d'informations, consultez Boxing.

Exemple

L’exemple suivant génère l’erreur C4972.

// C4972.cpp
// compile with: /clr:safe
using namespace System;
ref struct R {
   int ^ p;   // a value type
};

int main() {
   R ^ r = gcnew R;
   *(r->p) = 10;   // C4972

   // OK
   r->p = 10;
   Console::WriteLine( r->p );
   Console::WriteLine( *(r->p) );
}