Don't get the point. Any events other than default types are "Custom" and should return Type::CUSTOM
Are you trying to create event types Custom1, Custom2, etc? Is it necessary to separate event types Custom1, Custom2, etc in std::unordered_map?

[quote]
EventType a = EventType::CUSTOM + 1;
[/quote]

btw, this will give error but I guess it can be bypassed by using static_cast.