erreur C3646: « fermeture »: le spécificateur de commande prioritaire inconnue
-
09-10-2019 - |
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?
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