class InputHandler :
public EventHandler<Action>,
public EventHandler<CursorEvent>
{
public:
using EventHandler<Action>::handleEvent;
using EventHandler<CursorEvent>::handleEvent;
};
在里面
c++17
你可以改为写:
template<class...Bases>
struct ManyHandler:Bases...{
using Bases::handleEvent...;
};
template<class...Events>
using EventsHandler=ManyHandler< EvendHandler<Events>...>;
然后
class InputHandler : public EventsHandler<Actions, CursorEvent >{};
如果你也有
class OutputHandler : public EventsHandler< Messages, Sounds >{};
我们可以写
class IoHandler : public ManyHandler< InputHandler, OutputHandler > {};