On Nov 17, 2004, at 9:20 AM, Foster, Gareth wrote:
I was just reading some mention of bugs in boost::signal,
They weren't actually bugs :)
is this implementation in competition with libsigc++? i.e. does it aim to do the same job, but under a different license, or is there perhaps some fundamental design difference between the two?
The Signals library aims to be much more flexible than libsigc++ and to have an interface that is more comfortable for Boost. For instance, slots are just function objects with similar signatures (like Boost.Function, because Function is used in Signals), one can combine the results of calling multiple slots into a single return value via an arbitrary function object, and the lifetime of signals & slots is automatically tied to "trackable" objects used in bind expressions to build slots. Basically, libsigc++ is a monolithic entity covering single and multiple-target callbacks, slots, and slot binding, Signals tackles only the multiple-target callbacks, relying on other Boost libraries (especially Function and Signals) to do most of the work, so it integrates cleanly with the rest of Boost. Doug