我有一个Event类。在AddHandler(thisPtr, callback)
我对thisPtr
和callback
使用tr1::bind
,最终我有一个列表:如何在C++事件中实现删除处理程序
typedef std::tr1::function<void(int&)> CallbackFunction;
std::list<CallbackFunction> m_handlers;
但我怎么能实现删除处理方法,如果tr1::function
是不具有可比性?
我应该从对象指针和回调映射到tr1::function
,并删除具有相同对象指针和回调指针的参数在RemoveHandler
?这是一种安全的方法吗?
也许你应该只是返回插入对象的迭代器。另外,请检查Boost.Signals2,libsigC++等。 – kennytm 2012-01-11 17:19:31