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

Missing move SMFs disable move semantics for QSql classes

    XMLWordPrintable

Details

    • Task
    • Resolution: Fixed
    • P3: Somewhat important
    • None
    • 6.5.0 Beta1
    • SQL Support
    • None

    Description

      Some SQL classes (e.g. QSqlRecord) have user-defined copy Special Member Functions (SMFs) and a user-defined destructor, which disables the implicit generation of move SMFs. These types are therefore not movable, in particular, they're not nothrow_move_{constructible,assignable}, so they perform more poorly than they could in many situations, such as returning from functions and reallocation of containers.

      Add move SMFs, possibly member-swap and free swap functions (by using Q_DECLARE_SHARED, if that's BC these days).

      Acceptance criteria:

      • All QtSql value-like classes have
        • an inline noexcept move constructor
        • an inline noexcept move-assignment operator
          • using pure swap or move-and-swap, as fitting
        • an inline noexcept member-swap, if possible
        • are marked as Q_DECLARE_SHARED, if possible
          • adding Q_D_S after release used to be BiC in Qt 5, check the situation in Qt 6, add Q_DECLARE_SHARED_NOT_RELOCATABLE_UNTIL_QT7 if Q_D_S is still a problem

      Attachments

        Issue Links

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

          Activity

            People

              chehrlic Christian Ehrlicher
              mmutz Marc Mutz
              Vladimir Minenko Vladimir Minenko
              Alex Blasche Alex Blasche
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes