1. QT
http://qt.nokia.com/
Qt是本人喜欢并熟悉的一个cross-platform库,用来创建跨平台的应用程序非常方便。不过这不是推荐的重点,因为没办法把它用到我们自己的非QT程序中。不过QT借助自己实现moc预处理器,将signal和slot的声明,完美的融合到了C++类声明中是非常不错的考虑。
2. boost::signal & boost::signal2
http://www.boost.org/
大名鼎鼎的boost库中的子库,拥有boost其它模版库的完美支持。boost库值得去研究一下,不过只打算在自己的程序中使用signal &slot机制,还是不推荐该库。
3. libsigc++
http://libsigc.sourceforge.net/
这个库已经用在了gtkmm中,与boost::signal类似。
4. sigslot
http://sigslot.sourceforge.net/
一个非常精简的signal & slot 实现库,整个库只有一个<< sigslot.h >>文件。
Signal & slot 比较好的实现了对象间的解耦,在GUI框架中应用广泛。C++中signal & slot的实现,几乎都用到了Template, Delegation, Functor等。