Ошибка C3646: «Закрытие»: неизвестный спецификатор переопределения
-
09-10-2019 - |
Вопрос
Я получил следующую ошибку:
error C3646: 'closure' : unknown override specifier
Код:
void BaseOperator::mousebutton_cb(EventObject* sender, EventArgs* calldata, void* closure)
{
xd3D::Operation::Operator::BaseOperator* operator = (xd3D::Operation::Operator::BaseOperator*)closure;
MouseButtonEventArgs* e = (MouseButtonEventArgs*)calldata;
if (e->Status == Down)
operator->OnMouseButtonDown(e);
else
operator->OnMouseButtonUp(e);
}
Вы знаете, почему у меня есть эта ошибка?
Решение
operator
это ключевое слово. Последовательность operator =
пытается объявить оператор присваивания, который в вашем случае будет иметь тип параметра указателя. И ваш компилятор хочет проанализировать самый последний closure
как специальный спецификатор, как override
(AFAIK расширение MSVC), const
или такой.
Переименуйте переменную к чему-то еще, как myoperator
.
Не связан с StackOverflow