fork(1) download
  1. template<typename T>
  2. struct EventHandler {
  3. void pushEvent(T& ) {}
  4. };
  5.  
  6. template<typename... EventHandlers>
  7. struct _EventsHandler;
  8.  
  9. template<typename EventHandler>
  10. struct _EventsHandler<EventHandler> : EventHandler
  11. {
  12. using EventHandler::pushEvent;
  13. };
  14.  
  15. template<typename EventHandler, typename... EventHandlers>
  16. struct _EventsHandler<EventHandler, EventHandlers...> : EventHandler, _EventsHandler<EventHandlers...>
  17. {
  18. using EventHandler::pushEvent;
  19. using _EventsHandler<EventHandlers...>::pushEvent;
  20. };
  21.  
  22. using EventHandlerType = _EventsHandler<EventHandler<int>, EventHandler<float>, EventHandler<char>>;
  23.  
  24. int main()
  25. {
  26. EventHandlerType test;
  27.  
  28. int msp = 1;
  29. test.pushEvent(msp);
  30.  
  31. return 0;
  32. }
  33.  
Success #stdin #stdout 0s 3336KB
stdin
Standard input is empty
stdout
Standard output is empty