fix detach
This commit is contained in:
@@ -26,17 +26,15 @@ namespace VE
|
||||
event_handler handler;
|
||||
handler.m_func = std::bind(method, obj, std::placeholders::_1);
|
||||
handler.m_obj = obj;
|
||||
handler.m_func_ptr = reinterpret_cast<void*>(&method);
|
||||
m_funcs.push_back(handler);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void disconnect(T* obj, void (T::*method)(event))
|
||||
{
|
||||
auto func_ptr = reinterpret_cast<void*>(&method);
|
||||
m_funcs.erase(std::remove_if(m_funcs.begin(), m_funcs.end(),
|
||||
[obj, func_ptr](const event_handler& handler) {
|
||||
return handler.m_obj == obj && handler.m_func_ptr == func_ptr;
|
||||
[obj](const event_handler& handler) {
|
||||
return handler.m_obj == obj;
|
||||
}),
|
||||
m_funcs.end()
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user