A fundamental property of the Qt framework is the so called signals and slot mechanism. It is a generic event mechanism which is easy to use. By providing an interface of provided events (signals) and required handlers (slots) where a signal needs to be connected it is easy to connect objects with each other without specifying explicit dependencies. This event mechanism also works between objects in different threads.
However, the Qt signal and slot mechanism is dependent on meta information which is generated by the so called MOC, the Meta Object Compiler. For this to work the signals and slots keywords are added to C++. This makes a Qt program that uses signals and slots impossible to compile without the MoC and the Qt super object QObject.
So is there anyway to get this signal and slots mechanism using standard C++?
We are going to present how Qt and QObject works and describe the implementation of signal and slots mechanism and compare that to two libraries from boos called Signals2 and Synapse that provides the same thing but based on standard C++.