Question

Je suis l'erreur suivante:

error C3646: 'closure' : unknown override specifier

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

Savez-vous pourquoi j'ai cette erreur?

Était-ce utile?

La solution

operator est un mot-clé. La séquence operator = essaie de déclarer un opérateur d'affectation qui dans votre cas aurait un type de paramètre de pointeur. Et votre compilateur veut analyser la dernière closure comme spécificateur spécial comme override (afaik une extension de MSVC), const ou tel.

Renommer la variable à quelque chose d'autre, comme myoperator.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top