
Thank you for your quick respond. I'm sorry for the small errors in my code, below is a code that compiles, but as I try to run ./statemachine I get the following error: Starting Elevator Entering Elevator Idle At Floor state Exiting Elevator Idle At Floor state statemachine: ../boost/boost/cast.hpp:97: Target boost::polymorphic_downcast(Source*) [with Target = ElevatorSM*, Source = boost::statechart::state_machine<ElevatorSM, ElevatorActive, std::allocator<void>, boost::statechart::null_exception_translator>]: Assertion `dynamic_cast<Target>(x) == x' failed. Aborted So it is unable to run the test123() from the elevator class. Edited code: http://codepad.org/NBLZQYpU http://codepad.org/wsQ5Kae0 g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3 Bernt-Johan 2011/3/14 Igor R <boost.lists@gmail.com>
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<ElevatorSM, ElevatorActive>]: 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. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users