fix detach

This commit is contained in:
2025-04-17 17:04:03 +03:00
parent f2960ba125
commit e5d4f80f41
2 changed files with 4 additions and 4 deletions

View File

@@ -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()
);