diff --git a/include/sp/protocol/message/MessageDispatcherImpl.inl b/include/sp/protocol/message/MessageDispatcherImpl.inl index 734fab6..23e9a87 100644 --- a/include/sp/protocol/message/MessageDispatcherImpl.inl +++ b/include/sp/protocol/message/MessageDispatcherImpl.inl @@ -2,18 +2,14 @@ template void MessageDispatcher::RegisterHandler(MessageIdType a_MessageType, MessageHandler* a_Handler) { - auto found = std::find_if(m_Handlers[a_MessageType].begin(), m_Handlers[a_MessageType].end(), [&a_Handler](const MessageHandler* handler){ - return a_Handler == handler; - }); + auto found = std::find(m_Handlers[a_MessageType].begin(), m_Handlers[a_MessageType].end(), a_Handler); if (found == m_Handlers[a_MessageType].end()) m_Handlers[a_MessageType].push_back(a_Handler); } template void MessageDispatcher::UnregisterHandler(MessageIdType a_MessageType, MessageHandler* a_Handler) { - auto found = std::find_if(m_Handlers[a_MessageType].begin(), m_Handlers[a_MessageType].end(), [&a_Handler](const MessageHandler* handler){ - return a_Handler == handler; - }); + auto found = std::find(m_Handlers[a_MessageType].begin(), m_Handlers[a_MessageType].end(), a_Handler); if (found != m_Handlers[a_MessageType].end()) m_Handlers[a_MessageType].erase(found); } @@ -26,13 +22,7 @@ void MessageDispatcher::UnregisterHa MessageIdType type = pair.first; - auto it = std::find_if(pair.second.begin(), pair.second.end(), [&a_Handler](MessageHandler* handler){ - return handler == a_Handler; - }); - - if (it != pair.second.end()) - pair.second.erase(it); - + pair.second.erase(std::remove(pair.second.begin(), pair.second.end(), a_Handler), pair.second.end()); } }