Error C3646: "closure": unknown override specifier

I got the following error:

error C3646: 'closure' : unknown override specifier

The code:

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

Do you know why I have this error?

+3
source share
1 answer

operatoris a keyword. The sequence operator =tries to declare an assignment operator, which in your case will have the type of a pointer parameter. And your compiler wants to parse the latter closureas a special qualifier, for example override(afaik - MSVC extension), constor such.

Rename the variable to something else, for example myoperator.

+9
source

Source: https://habr.com/ru/post/1779963/


All Articles