Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
throwing "type" : en typ med __clrcall-destruktor eller kopieringskonstruktor kan endast fångas i en /clr:pure modul
Anmärkningar
Kompileringsalternativet /clr:pure är inaktuellt i Visual Studio 2015 och stöds inte i Visual Studio 2017.
När den kompileras med /clr (inte /clr:pure) förväntar sig undantagshanteringen att medlemsfunktionerna i en intern typ är __cdecl och inte __clrcall. Inbyggda typer med medlemsfunktioner som använder __clrcall anropskonvention kan inte fångas i en modul som kompilerats med /clr.
Om undantaget fångas i en modul som kompilerats med /clr:pure kan du ignorera den här varningen.
Mer information finns i /clr (Common Language Runtime Compilation).
Example
I följande exempel genereras C4382.
// C4382.cpp
// compile with: /clr /W1 /c
struct S {
__clrcall ~S() {}
};
struct T {
~T() {}
};
int main() {
S s;
throw s; // C4382
S * ps = &s;
throw ps; // OK
T t;
throw t; // OK
}