Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
}