Hi Christophe,
thanks for the reply.
The reason I want to extend the backend is that I need to maintain a separate event queue (a job queue).
In reality, "test()" is a function template, so I cannot use virtual functions.
If I implement this function template in the frontend, I need to static_cast to the backend, which I try to avoid:
struct fsm_ : public boost::msm::front::state_machine_def<fsm_>
{
typedef msmb::state_machine<fsm_> BackMachine;
template <typename EventType>
void enqueue_job(const EventType& evt)
{
job_queue.push(
std::bind(&BackMachine::template process_event<EventType>, static_cast<BackMachine*>(this), evt)
);
}
// ...
};