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