Recorded at the Qt Developer Days in Berlin in 2020. Slides available at http://qtconference.kdab.com/node/25 One of the cornerstones of Qt is a system of communication between instances of objects in a many-to-many relationship. The signals and slots system is familiar to all users of the Qt Frameworks, and can be used to indicate when something happens in a UI, or on a network socket or other subsystem. Data can be passed through these connections to create a rich network of objects in an observer pattern. The Qt system depends on a code generator to create valid connections between objects, but this same code generator also provides other features such as introspection and dynamic instance construction. In parallel, Qt provides a class for storing an instance of any type, the QVariant, and a system of registering user-defined types, the QMetaType system. These features do not depend on any external code generator, but rely on the preprocessor, template specialization, and c++ unions. The presentation will start with a feature and use-case summary and proceed to discuss implementation details of these Qt cornerstones. The possibilities and enhancements brought by C++11 will also be shown in relation to these features.
QtDD12 - In Depth - QMetaType and QMetaObject - Stephen Kelly