Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-46561

Header Diff related issues in QtCore

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.5.0 RC
    • 5.5.0 RC
    • Core: Other
    • 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

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              ogoffart Olivier Goffart (Woboq GmbH)
              janihe Jani Heikkinen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes