Frage

Ich habe die folgende Fehlermeldung:

error C3646: 'closure' : unknown override specifier

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

Weißt du, warum ich diesen Fehler haben?

War es hilfreich?

Lösung

operator ist ein Schlüsselwort. Die Sequenz operator = versucht, einen Zuweisungsoperator, die in Ihrem Fall zu erklären, einen Zeiger Parametertyp haben würden. Und Ihr Compiler will den allerletzten closure als Sonder Spezifizierer wie override (AFAIK eine Erweiterung von MSVC), const oder so analysieren.

Benennen Sie die Variable auf etwas anderes, wie myoperator.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top