Dear statecharters,

I would like to request help with a problem building a statemachine from states that I
derive from simple_state. Here is minimal code that defines two states StateA and StateB
and an event cycling between these two:

#include <boost/statechart/state_machine.hpp>
#include <boost/statechart/simple_state.hpp>
#include <boost/statechart/event.hpp>
#include <boost/statechart/transition.hpp>

namespace sc = boost::statechart;
using namespace std;

class StateA;
struct StateMachine : sc::state_machine< StateMachine, StateA >
{
    void unconsumed_event( const sc::event_base & evt ) { cout << "unconsumed!" << endl; }
};

class Event : public sc::event< Event > {};

struct StateA : sc::simple_state< StateA, StateMachine >
{
    typedef sc::transition< Event, StateB > reactions;
};

struct StateB : sc::simple_state< StateB, StateMachine >
{
    typedef sc::transition< Event, StateA > reactions;
};

-----------------
This works fine as expected with process_event( Event() ).
However, I would like to derive the states of my statechart from a class like this:

template<class context>
struct State : sc::simple_state< State<context>, context >
{
    // Some application-specific things
};

struct StateA : State< StateMachine >
{
    typedef sc::transition< Event, StateB > reactions;
};

struct StateB : State< StateMachine >
{
    typedef sc::transition< Event, StateA > reactions;
};

-----------------
Now, calling process_event( Event() ) does not do anything, except turning the event up
at the StateMachine::unconsumed_event() method.
I am aware of this one:
  http://www.boost.org/doc/libs/1_35_0/libs/statechart/doc/faq.html#TemplatedStates
but I'm not sure whether this applies in any way to my case, as I don't have any compiler
errors.
May I be violating some prerequisites here?

Thank you for any help you can provide,
  Stefan.