Is there a lightweight signal-slot implementation with basic reflection?
<p><strong>Background</strong></p>

<p>I need to implement a dynamically-configurable data-processing toolkit. There will be several data processing entities, which can be combined to a data-flow graph by using a GUI tool.
The idea is similiar to Direct Show filter graphs (GraphEdit) or Apple's Quartz Composer.</p>

<p>The GUI tool will store graph definitions in a file. When the actual processing is started, this definition file will be read, and data processing objects have to be created and connected at runtime.</p>

<p>I have used Qt's signals and slots for similiar problems before, but this time the main program does not have any GUI. So I'd like to use something less bloated.</p>

<p><strong>Question</strong></p>

<p>What is the easiest way to have signal/slot functionality with basic reflection, without using Qt?</p>

<p>I need to define a fixed number of slot types (each with a certain predefined function signature).
For example, there will be an image-consuming slot, taking an image object as parameter, or a slot just taking an int as parameter.</p>

<p>At runtime, I need to iterate through all signals/slots and connect them dynamically.</p>

<p>I do not need to inspect Slot/Signal Parameters at runtime. It sufficient to have a fixed number of parameter sets. It would be ok to put some kind of hint in the slot's name to identify the signature type.</p>

<p>I know that boost ships with signal2, which provides signal/slot functionality. But whats the fastest way to implement reflection? Should I build my own set of macro-hacks?</p>
