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
> My question:Your code compiles well (after a few cosmetic changes, like fixing
> 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
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