Domanda

ho ottenuto il seguente errore:

error C3646: 'closure' : unknown override specifier

Il codice:

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

Ti so perché ho questo errore?

È stato utile?

Soluzione

operator è una parola chiave. La sequenza di operator = cerca di dichiarare un operatore di assegnamento che nel tuo caso avrebbe un tipo di parametro puntatore. E il compilatore vuole analizzare l'ultimo closure come un identificatore speciale come override (AFAIK un'estensione della MSVC), const o tali.

Rinomina la variabile a qualcos'altro, come myoperator.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top