Как использовать вектор / список для хранения объектов производных классов Curily Recursive Template Pattern?

Я использую Boost Statechart Event для конечного автомата.
Я думаю о векторе / списке для хранения событий.

Я попробовал следующее —

template <typename T>
struct Event : public boost::statechart::event<Event>
{
Event(const T & event) : m_event(event)
{
//
}
~Event()
{
}
Event & getEvent() const { return m_event; }
Event m_event;
};

struct EventOne : public Event<EventOne> {};
struct EventTwo : public Event<EventTwo> {};

В классе State-Machine я хочу добавить каждое событие в вектор / список, что я не могу.

class StateOne;
class StateMachine : public boost::statechart::state_machine<StateMachine, StateOne>
{
StateMachine() = default;
~StateMachine() = default;
private:
std::list<boost::statechart::event<Event>> events; // Error in formation of std::list here
};

Моя цель — добавить события в список, как указано ниже —

EventOne eOne;
EventTwo eTwo;

events.push_back(eOne);
events.push_back(eTwo);
events.push_back(EventOne());

Я что-то упустил. Пожалуйста, помогите мне с формированием вектора / списка с примером кода. Благодарю.

Ошибки:

error C3203: 'Event': unspecialized class template can't be used as a template argument for template parameter 'MostDerived', expected a real type
error C2460: 'Event<EventOne>::m_event': uses 'Event<Startup>', which is being defined
error C3203: 'Event': unspecialized class template can't be used as a template argument for template parameter 'MostDerived', expected a real type

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …