Kompilatorfel C2743

"type" : kan inte fånga en intern typ med __clrcall destructor eller kopieringskonstruktor

Anmärkningar

En modul som kompilerats med /clr försökte fånga ett undantag av intern typ och där typens destruktor eller kopieringskonstruktor använder __clrcall anropande konvention.

Vid kompilering med /clr förväntar sig undantagshantering 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.

Mer information finns i /clr (Common Language Runtime Compilation).

Exempel

I följande exempel genereras C2743.

// C2743.cpp
// compile with: /clr
public struct S {
   __clrcall ~S() {}
};

public struct T {
   ~T() {}
};

int main() {
   try {}
   catch(S) {}   // C2743
   // try the following line instead
   // catch(T) {}

   try {}
   catch(S*) {}   // OK
}