自从掌握了signal/slot机制后,它已经变成了我在设计中一种必不可少的方法,如何在非QT环境中使用这种机制,也是我一直在考虑的问题。目前的这个版本,相对来说还是比较满意的,而且个人认为它优于Boost::signal实现。 这个实现的主要特点: 1。不再使用tr1::fucntion, 主要是因为它没有办法提供一致的相等性比较,另外,它也并没有真正解决使用成员函数时指针的有效期问题(当然也可以通过tr1::bind加上tr1::shared_ptr达到这一目的)。
posted on 2008-01-09 10:59 eXile 阅读(4170) 评论(5) 编辑 收藏 引用 所属分类: C/C++ 、代码片段
修正了一个bug ( signal.h: 92) template<...> class signal { //.... template <class T> void connect(SP_NS::shared_ptr<T> const& f) { _connect(slot_type(f.get()), f); } }; 回复 更多评论
错别字?void f()(int) { printf("Bar"); }function returns function 回复 更多评论
谢谢,改过来了。 回复 更多评论
我还没来得及读Boost的。Loki的Functor比较类似,比较轻量级,也容易看懂。 回复 更多评论
Functor!呵呵,很多实现版本。 回复 更多评论