自從掌握了signal/slot機(jī)制后,它已經(jīng)變成了我在設(shè)計(jì)中一種必不可少的方法,如何在非QT環(huán)境中使用這種機(jī)制,也是我一直在考慮的問(wèn)題。目前的這個(gè)版本,相對(duì)來(lái)說(shuō)還是比較滿意的,而且個(gè)人認(rèn)為它優(yōu)于Boost::signal實(shí)現(xiàn)。 這個(gè)實(shí)現(xiàn)的主要特點(diǎn): 1。不再使用tr1::fucntion, 主要是因?yàn)樗鼪](méi)有辦法提供一致的相等性比較,另外,它也并沒(méi)有真正解決使用成員函數(shù)時(shí)指針的有效期問(wèn)題(當(dāng)然也可以通過(guò)tr1::bind加上tr1::shared_ptr達(dá)到這一目的)。
posted on 2008-01-09 10:59 eXile 閱讀(4188) 評(píng)論(5) 編輯 收藏 引用 所屬分類(lèi): C/C++ 、代碼片段
修正了一個(gè)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); } }; 回復(fù) 更多評(píng)論
錯(cuò)別字?void f()(int) { printf("Bar"); }function returns function 回復(fù) 更多評(píng)論
謝謝,改過(guò)來(lái)了。 回復(fù) 更多評(píng)論
我還沒(méi)來(lái)得及讀Boost的。Loki的Functor比較類(lèi)似,比較輕量級(jí),也容易看懂。 回復(fù) 更多評(píng)論
Functor!呵呵,很多實(shí)現(xiàn)版本。 回復(fù) 更多評(píng)論