QMetaType and QVariant: Difference between revisions
Jump to navigation
Jump to search
(Created page with "Category:QtCS2023 ==Session Summary== ==Session Owners== ==Notes==") |
No edit summary |
||
Line 3: | Line 3: | ||
==Session Summary== | ==Session Summary== | ||
Look at qmetatype.h and see whether we understand what's there. | |||
==Session Owners== | ==Session Owners== | ||
Thiago, Fabian | |||
==Notes== | ==Notes== | ||
* could use dispatcher a la QSlotObject to reduce number of function pointers in QMetaTypeInterface | |||
** Ulf: contributes a lot to binary size | |||
** but code checks the pointers to avoid calling a function | |||
*** trivially copyable? memcpy | |||
** but a lot of the later additions could use a dispatcher | |||
*** Thiago: each pointer is a relocation | |||
**** Marc: could set a nullptr to indicate calling a global function for all the built-in types to reduce relocs even more | |||
* Replace the less with the spaceship function in the interface | |||
* Use spaceship in the impl of the interface for built-in types | |||
* Looking at flags: | |||
** ideas to reducenumber of flags: | |||
*** for QWeakPointer<QObject> | |||
**** backend for QPointer | |||
*** plans exist to phase it out | |||
* std::function use | |||
** currently leaks it because the destructor code may already have been unloaded on destruction of registry | |||
*** use function_ref? | |||
* MutableViewFunction | |||
** use in QML, Fabian and Ulf know | |||
* compare function returns QPArtialOrdering: | |||
** Marc: can stay-is until we start to deprecate QPartialOrdering (just another one of the ordering types, behaves the same) | |||
* QPairVariantInterfaceImpl | |||
** used in associative containers? | |||
*** investigate where it's used, remove if not | |||
* type helpers | |||
** is_Real_Gadget? | |||
* enum helper | |||
** used in QDebug, QTest, etc | |||
* when do we need Q_DECLARE_METATYPE?1 | |||
** Fabian: QueuedConnection needs it | |||
Session stopped 40% into the header file. | |||
If you have questions or knowledge of QMetaType, talk to Thiago and Fabian. |
Revision as of 13:32, 1 December 2023
Session Summary
Look at qmetatype.h and see whether we understand what's there.
Session Owners
Thiago, Fabian
Notes
- could use dispatcher a la QSlotObject to reduce number of function pointers in QMetaTypeInterface
- Ulf: contributes a lot to binary size
- but code checks the pointers to avoid calling a function
- trivially copyable? memcpy
- but a lot of the later additions could use a dispatcher
- Thiago: each pointer is a relocation
- Marc: could set a nullptr to indicate calling a global function for all the built-in types to reduce relocs even more
- Thiago: each pointer is a relocation
- Replace the less with the spaceship function in the interface
- Use spaceship in the impl of the interface for built-in types
- Looking at flags:
- ideas to reducenumber of flags:
- for QWeakPointer<QObject>
- backend for QPointer
- plans exist to phase it out
- for QWeakPointer<QObject>
- ideas to reducenumber of flags:
- std::function use
- currently leaks it because the destructor code may already have been unloaded on destruction of registry
- use function_ref?
- currently leaks it because the destructor code may already have been unloaded on destruction of registry
- MutableViewFunction
- use in QML, Fabian and Ulf know
- compare function returns QPArtialOrdering:
- Marc: can stay-is until we start to deprecate QPartialOrdering (just another one of the ordering types, behaves the same)
- QPairVariantInterfaceImpl
- used in associative containers?
- investigate where it's used, remove if not
- used in associative containers?
- type helpers
- is_Real_Gadget?
- enum helper
- used in QDebug, QTest, etc
- when do we need Q_DECLARE_METATYPE?1
- Fabian: QueuedConnection needs it
Session stopped 40% into the header file.
If you have questions or knowledge of QMetaType, talk to Thiago and Fabian.