#pragma once using namespace std; template class EventList; template<> class EventList<> {}; /** * @todo addition type but without trigger ambiguous error. */ template class EventList : public virtual EventList<> { public: virtual void dispatch(const Event&){}; //=0 // virtual void dispatch(Event&) // { // cout << "default cb\n"; // }; // virtual void dispatch(const Event) // { // cout << "default cb\n"; // }; }; template class EventList : public EventList , public EventList {};