Oh wow, that's rude ! Thanks ! On Sat, Oct 28, 2023, 09:58 Constantin Makshin <cmaks...@gmail.com> wrote:
> Hi Ulf. > > MOC is fine, it's the Q_GADGET macro: > #define Q_GADGET_EXPORT(...) \ > public: \ > static __VA_ARGS__ const QMetaObject staticMetaObject; \ > void qt_check_for_QGADGET_macro(); \ > typedef void QtGadgetHelper; \ > private: \ > QT_WARNING_PUSH \ > Q_OBJECT_NO_ATTRIBUTES_WARNING \ > Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject > *, QMetaObject::Call, int, void **); \ > QT_WARNING_POP \ > QT_ANNOTATE_CLASS(qt_qgadget, "") \ > /*end*/ > > /* qmake ignore Q_GADGET */ > #define Q_GADGET Q_GADGET_EXPORT() > > On 10/28/23 00:05, Stefan Seefeld wrote: > > Hi Uli, > > > > thank you for sharing that document, that's indeed very helpful. > > Following its examples, I was able to set up my singleton such that both > runtimes (C++, QML) would share the same instance. > > Doing that I bumped into what I would consider a bug, probably in the > MOC infrastructure: > > The example I used was > > > > ``` > > struct SingletonForeign > > { > > Q_GADGET > > QML_FOREIGN(MySingleton) > > QML_SINGLETON > > QML_NAMED_ELEMENT(MySingleton) > > public: > > static MySingleton *create(QQmlEngine *, QJSEngine *engine); > > }; > > > > ``` > > > > which works fine. Then I wanted to clean the code up a little more, and > removed the "public:", given that the above is a `struct`, so everything in > it is public anyhow. And that's where it stopped working ! > > I assume this is because the MOC isn't really aware of C++ semantics, > and for some reason really requires the "public" specifier to be there. Why > isn't the MOC using an actual compiler frontend to analyse these > declarations ? > > > > Thanks, > > > > -- > > > > ...ich hab' noch einen Koffer in Berlin... > > > > > > _______________________________________________ > > Interest mailing list > > Interest@qt-project.org > > https://lists.qt-project.org/listinfo/interest > _______________________________________________ > Interest mailing list > Interest@qt-project.org > https://lists.qt-project.org/listinfo/interest >
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest