Como the QObject
documentation y muchos otros explican, un QObject
tiene una identidad y oculta su copia de constructor y operador de asignación.C++ Qt Reflection with Copy and Assignment
Sin embargo, no estoy derivando de QObject
por su característica de propiedades dinámicas o la característica de señales/ranuras. Solo quiero reflexión, o la posibilidad de acceder a Foo::staticMetaObject
.
class Foo : public QObject {
Q_OBJECT
Q_ENUMS(Color)
public:
enum Color { Blue, Red, Pink };
private:
Color color;
};
Q_DECLARE_METATYPE(Foo::Color)
Entonces no puedo copiar Foo
con:
Foo a;
Foo b;
a = b;
¿Cuál es la mejor manera de permitir la copia y la asignación en este caso? ¿Debo absolutamente escribir un constructor de copias y un operador de asignación? ¿Cómo se verían? ¿La reflexión todavía funcionará?
Quiere decir que no usa 'QObject'. Porque la reflexión no es la fuente del problema aquí. El problema es que QObject hace que la copia y la asignación sean privadas (por una buena razón). –
@kristianp, buena sugerencia, haría esa edición * si * @alexisdm no proporcionó la respuesta exacta a mi pregunta exacta. Muchas veces la respuesta es "no hagas lo que pides", pero en este caso, incluso si esa es una respuesta razonable, también hay una que me permite hacer lo que quiero hacer: 'Q_GADGET' –