Megosztás a következőn keresztül:


Fordító figyelmeztetése (1. szint) C4382

Egy 'típus' dobás: egy __clrcall destruktorral vagy másolókonstruktorként rendelkező típus csak a /clr:pure modulban fogható el.

Megjegyzések

A /clr:pure fordító beállítás elavult a Visual Studio 2015-ben, és nem támogatott a Visual Studio 2017-ben.

A /clr (nem /clr:pure) használatával történő fordítás esetén a kivételkezelés elvárja, hogy a tagfüggvények natív típusban __cdecl legyenek, és ne __clrcall. A hívó konvenciót használó __clrcall tagfüggvényekkel rendelkező natív típusok nem ragadhatók meg a /clr használatával összeállított modulban.

Ha a kivétel a /clr:pure parancsmal lefordított modulban jelenik meg, figyelmen kívül hagyhatja ezt a figyelmeztetést.

További információ: /clr (Common Language Runtime Compilation).

Example

Az alábbi példa C4382-t hoz létre.

// 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
}