On Friday 05 June 2015 10:11:28 Frederik Gladhorn wrote: > I can't tell if the qmetatype.h template magic is binary compatible or not. As evidenced by a recent push [1] about the IsGadget flag, it isn't.
I'm going to put a stop to this. qmetatype.h template magic is now frozen as of Qt 5.5 and until Qt 6.0, aside from bugfixes or pure additions that do not modify existing template classes. [1] https://codereview.qt-project.org/113652 > +++ b/src/corelib/plugin/qfactoryinterface.h > Q_DECLARE_FLAGS(LoadHints, LoadHint) > + Q_FLAG(LoadHint) > + Q_FLAG(LoadHints) Do we need both Q_FLAG? That looks like a mistake. > +// ### Qt6: check if there's a better way > +class QStringList : public QList<QString> [...] > - inline void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive); > - inline int removeDuplicates(); The above works only because: 1) QStringList is not exported 2) the functions in question are inlines However, if someone derives from QStringList and exports a class, using MSVC, then this may be binary incompatible. See qvector_msvc.h. I have not and will not investigate this further, so I don't know if this is real or not. If there's a bug reported on this, I will probably close it with "you're committing too many mistakes" (using MSVC and deriving from QStirngList). The rest looks good, but I hope I didn't miss anything in the Q_DECL_NOTHROW, Q_DECL_OVERRIDE and Q_DECL_CONSTEXPR noise. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development