
My question: How can I pass a pointer to an object into the state machine?
I want to use my state machine to control a real-life elevator. All the functions for controlling this elevator is inside class Elevator; I.e: myElevator->startEngine(UP);
I've tried different approaches as you might see in my attached code, but I keep getting this error: statemachine: ../boost/boost/cast.hpp:97: Target boost::polymorphic_downcast(Source*) [with Target = ElevatorSM*, Source = boost::statechart::state_machine
]: Assertion `dynamic_cast<Target>(x) == x' failed. Aborted h-file: http://codepad.org/i3rAjT1p cpp-file: http://codepad.org/TpaWluCz
Your code compiles well (after a few cosmetic changes, like fixing test123() name, adding "e" member to your fsm, etc.). boost 1.45, MSVC10.