Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Function: функция "голая" не может содержать объекты, требующие отмены при возникновении исключения C++
Компилятору не удалось выполнить очистку стека в голой функции, которая вызвала исключение, так как временный объект был создан в функции и обработке исключений C++ (/EHsc).
Чтобы устранить эту ошибку, выполните по крайней мере одно из следующих действий:
Не компилируйте с помощью /EHsc.
Не помечайте функцию как
naked
.Не создавайте временный объект в функции.
Если функция создает временный объект в стеке, если функция создает исключение и если включена обработка исключений C++, компилятор очищает стек при возникновении исключения.
При возникновении исключения компилятор создал код, называемый прологом и эпилогом, и которые не присутствуют в голой функции, выполняются для функции.
Пример
Следующий пример приводит к возникновению ошибки C3068:
// C3068.cpp
// compile with: /EHsc
// processor: x86
class A {
public:
A(){}
~A(){}
};
void b(A){}
__declspec(naked) void c() {
b(A()); // C3068
};