Original Post
I'm exploring abuse of templates and statics. I don't think I ever would use code like this, but what are the gotchas? Note: Untested code.
template <typename Event>
struct EventQueue
{
static std::queue<Event *> event_queue;
};
class System
{
public:
template <typename Event>
void postEvent(Event * event)
{
EventQueue<Event>::event_queue.push(event);
}
template <typename Event>
std::queue<Event *> & getEventQueue()
{
return EventQueue<Event>::event_queue;
}
private:
};