He tenido este código que se ejecuta durante bastante tiempo en una biblioteca:QFlags Enum Tipo de conversión falla de repente
MyClass::MyClass()
: QDialog()
{
// (...)
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint);
// (...)
}
Entonces, después de cambiar varias partes de la biblioteca, me sale este mensaje a todos de repente:
error C2664: 'QWidget::setWindowFlags': cannot convert parameter 1 from 'int' to 'Qt::WindowFlags'
Aparentemente no encuentra la | sobrecarga del operador proporcionada por la clase QFlags para que el resultado de | devuelve un int en lugar de un constructo QFlags.
Sé que podría lanzar manualmente el resultado a (Qt::WindowFlags)
y hacerlo funcionar, pero QFlags normalmente haría innecesario este tipo de conversión.
¿Alguna idea de qué tipo de cambio podría provocar este comportamiento?
Estoy incluyendo <QtGui/QDialog>
que generalmente sería suficiente. Incluir <QtCore/QFlags>
no cambia el comportamiento.
Tiene sentido, gracias por la explicación detallada. –