#include"Event.h" template ListenerID Event::AddListener(Callback p_callback) { ListenerID listenerID = m_availableListenerID++; m_callbacks.emplace(listenerID, p_callback); return listenerID; } template ListenerID Event::operator+=(Callback p_callback) { return AddListener(p_callback); } template bool Event::RemoveListener(ListenerID p_listenerID) { //£¿£¿£¿£¿ return m_callbacks.erase(p_listenerID) != 0; } template bool Event::operator-=(ListenerID p_listenerID) { return RemoveListener(p_listenerID); } template void Event::RemoveAllListeners() { m_callbacks.clear(); } template uint64_t Event::GetListenerCount() { return m_callbacks.size(); } template void Event::Invoke(ArgTypes... p_args) { //£¡£¡£¡£¡ for (auto const& [key, value] : m_callbacks) value(p_args...); }