Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.5.0 RC
-
None
Description
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
Attachments
Issue Links
- is required for
-
QTBUG-46579 Issues to be fixed before Qt 5.5.0 Final release
- Closed