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

Qt container-based classes now require stream operators

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 5.7.0 Beta
    • Fix Version/s: 5.7.0
    • Component/s: D-Bus
    • Labels:
      None
    • Environment:
      Gentoo/Linux, amd64, gcc-4.8.4.
    • Commits:
      d55f2b1fb9c910bc118f75967a0e6273f8aa98d1 c7d4858c921c7602dc90d56cdd903cd2cb1111c6

      Description

      Since commit 5f542f3cca13f2da58b82aee2efbaffefeee00a7 Qt container-derived classes, such as

      class UIntList : public QList<uint>

      now can not be streamed to/from QDBusArgument.

      error: no match for 'operator>>' (operand types are 'QDBusArgument' and 'UIntList')

      http://doc.qt.io/qt-5/qdbusargument.html#qDBusRegisterMetaType says:

      If T isn't a type derived from one of Qt's container classes, the operator<< and operator>> streaming operators between T and QDBusArgument must be already declared.

      Thus, the change seems to contradict with the documentation and breaks various projects, e.g. TelepathyQt: https://bugs.freedesktop.org/show_bug.cgi?id=95376

        Attachments

        For Gerrit Dashboard: QTBUG-53376
        # Subject Branch Project Status CR V

          Activity

            People

            Assignee:
            mmutz Marc Mutz
            Reporter:
            kaffeine Alexandr Akulich
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes