Kompilatorvarning (nivå 3) C4823

"function" : använder fästpekare men varva ned semantik är inte aktiverade. Överväg att använda /EHa

Anmärkningar

Om du vill ta bort ett objekt i den hanterade heapen som pekas ut av en pinpekare deklarerad i ett blockomfång simulerar kompilatorn destruktorers beteende i lokala klasser och "simulerar" att pinpekaren har en destruktor som upphäver pekaren. Om du vill aktivera ett anrop till en destruktor efter att ha genererat ett undantag måste du aktivera avveckling av objekt, vilket du kan göra genom att använda /EHsc.

Du kan också avfästa objektet manuellt och ignorera varningen.

Example

I följande exempel genereras C4823.

// C4823.cpp
// compile with: /clr /W3 /EHa-
using namespace System;

ref struct G {
   int m;
};

void f(G ^ pG) {
   try {
      pin_ptr<int> p = &pG->m;
      // manually unpin, ignore warning
      // p = nullptr;
      throw gcnew Exception;
   }
   catch(Exception ^) {}
}   // C4823 warning

int main() {
   f( gcnew G );
}