[BOOST] intrusive_ptr <T>
Bonjour,
quelqu'un pourrait me dire comment on utilise les intrusive_ptr<T> dans boost et dans quel contexte??
Je dois utiliser le add de boost::statechart::state_machine<MostDerived,InitialState>::add qui permet d'ajouter un état dans un automate.
Il faut lui passer un intrusive_ptr<T> en paramètre qui représente j'imagine un pointeur vers l'état qu'on veut ajouter.
J'ai ma machine (automate) qui est déclaré :
Code:
1 2 3
|
struct Machine : sc::state_machine< Machine, PseudoState > {};
//PseudoState est l'état initial |
et je créé une machine (instance) :
Machine myMachine;
l'état que je veux ajouter est déclaré simplement :
FinalState FS;
FinalState étant une classe dérivée de simple_state dont voici la définition :
Code:
1 2 3 4 5
| struct FinalState : sc::simple_state< FinalState, Machine >
{
FinalState() { std::cout << "Etat final!\n"; } // entry
~FinalState() { std::cout << "Fin etat final!\n"; } // exit
}; |
Je veux donc faire un simple :
myMachine.add<FinalState>(&FS);
Mais il me sort une erreur :
Citation:
"Assertion Failed : false, file c:\users\admin\desktop\sabrina\dev\sdk\boost_1_39_0\boost\statechart\details\state_base.hpp, line 174"
Quelqu'un a une idée de ce que je fais de mal???:(
Je vois pas, surement car j'utilise boost depuis seulement une semaine :?