Ошибка компилятора C2743
"type" : не удается поймать собственный тип с помощью деструктора __clrcall или конструктора копирования
Модуль, скомпилированный с / clr , попытался поймать исключение собственного типа и где деструктор типа или конструктор копирования использует __clrcall
соглашение о вызове.
При компиляции с / clr обработка исключений ожидает, что функции-члены в собственном типе будут __cdecl , а не __clrcall. Собственные типы с функциями-членами с помощью __clrcall
соглашения о вызовах не могут быть пойманы в модуле, скомпилированном с помощью /clr.
Дополнительные сведения см. в разделе /clr (компиляция CLR).
Пример
Следующий пример приводит к возникновению ошибки 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
}