Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"function" : używa przypinania wskaźników, ale semantyka nie jest włączona. Rozważ użycie /EHa
Uwagi
Aby odpinać obiekt na zarządzanym stercie wskazywanym przez wskaźnik przypinania zadeklarowany w zakresie bloku, kompilator symuluje zachowanie destruktorów klas lokalnych, "udając" wskaźnik przypinania ma destruktora, który nullifies wskaźnik. Aby włączyć wywołanie destruktora po wystąpieniu wyjątku, należy włączyć odwijanie obiektu, co można zrobić za pomocą /EHsc.
Możesz również ręcznie odpiąć obiekt i zignorować ostrzeżenie.
Przykład
Poniższy przykład generuje kod 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 );
}