Observe your neighbors and remove your seatbelt
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.
Speaker: Stephen Kelly