自從掌握了signal/slot機制后,它已經變成了我在設計中一種必不可少的方法,如何在非QT環境中使用這種機制,也是我一直在考慮的問題。目前的這個版本,相對來說還是比較滿意的,而且個人認為它優于Boost::signal實現。 這個實現的主要特點: 1。不再使用tr1::fucntion, 主要是因為它沒有辦法提供一致的相等性比較,另外,它也并沒有真正解決使用成員函數時指針的有效期問題(當然也可以通過tr1::bind加上tr1::shared_ptr達到這一目的)。
posted on 2008-01-09 10:59 eXile 閱讀(4185) 評論(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!呵呵,很多實現版本。 回復 更多評論