Details
-
Task
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.4.0 Beta1
-
None
-
8
-
Foundation PM Prioritized
Description
The QDom classes 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 QDom value-like classes (incl. QDomNode hierarchy) have
- an inline noexcept move constructor
- an inline noexcept move-assignment operator
- just swaps, not move-and-swap
- an inline noexcept member-swap, if possible
- probably need a way to prevent mixed-type swapping
- see QPixmap/QBitmap for a technique
- likely move-assignment needs the same protection
- probably need a way to prevent mixed-type swapping
- 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
- is cloned by
-
QTBUG-109938 Missing move SMFs disable move semantics for QSql classes
- Closed