I'm trying to implement a state machine using the boost statechart library. It has 3 main states (call them "State 1", "State 2", and "State 3") and 3 classes of events ("Class 1", "Class 2", and "Class 3").
State 1 should have event handlers for all Class 1 events. State 2 should have handlers for Class 1 and 2 events. State 3 should have handlers for Class 1, 2, and 3 events.

The handling of each class of events is essentially the same regardless of what state the machine is in.

Is there a way I can derive State 3 from States 1 and 2 so that I'm not repeating the Class 1 and 2 event handling code in State 3? What is the best way to architect something like this?

Thanks,
PaulH