Upozornění kompilátoru (úroveň 1) C4382
throwing 'type' : typ s __clrcall destruktor nebo konstruktor copy lze zachytit pouze v /clr:pure module
Poznámky
Možnost /clr:pure compiler je v sadě Visual Studio 2015 zastaralá a v sadě Visual Studio 2017 není podporována.
Při kompilaci pomocí /clr (nikoli /clr:pure), zpracování výjimek očekává, že členské funkce v nativním typu budou __cdecl a nebudou __clrcall. Nativní typy s členskými funkcemi využívající __clrcall
konvenci volání nelze zachytit v modulu zkompilovaném pomocí /clr.
Pokud se výjimka zachytí v modulu zkompilovaném pomocí /clr:pure, můžete toto upozornění ignorovat.
Další informace naleznete v tématu /clr (Common Language Runtime Compilation).
Příklad
Následující ukázka vygeneruje 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
}