Pregunta

Tengo el siguiente error:

error C3646: 'closure' : unknown override specifier

El código:

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

¿sabe por qué tengo este error?

¿Fue útil?

Solución

operator es una palabra clave. La secuencia de operator = intenta declarar un operador de asignación que en su caso tendría un tipo de parámetro de puntero. Y su compilador quiere analizar el último closure como un especificador especial como override (que yo sepa una extensión de MSVC), const o algo así.

Cambiar el nombre de la variable a otra cosa, como myoperator.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top