ошибка C3646: «закрытие»: неизвестный спецификатор переопределения - PullRequest
3 голосов
/ 13 декабря 2010

Я получил следующую ошибку:

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);
}

Знаете ли вы, почему у меня эта ошибка

1 Ответ

9 голосов
/ 13 декабря 2010

operator является ключевым словом.Последовательность operator = пытается объявить оператор присваивания, который в вашем случае будет иметь тип параметра указателя.И ваш компилятор хочет проанализировать самый последний closure как специальный спецификатор, такой как override (afaik расширение MSVC), const или что-то подобное.

Переименуйте переменную во что-то другое, например myoperator.

...