C ++ Qt Reflection with Copy and Assignment

Как документация QObject и многие другие объясняют, QObject имеет идентичность и, таким образом, скрывает свой конструктор копии и назначение

Однако я не исхожу из QObject из-за его функции динамических свойств или функции сигналов / слотов. Мне нужно только отражение или возможность доступа к 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)

Я не могу скопировать Foo с помощью:

Foo a;
Foo b;
a = b;

Что за лучший способ разрешить копирование и назначение в этом случае? Обязательно ли мне писать конструктор копирования и оператор присваивания? Как бы они выглядели? Будет ли отражение работать по-прежнему?

6
задан Gilles 'SO- stop being evil' 6 February 2013 в 13:32
поделиться