Sorry for my late answer, I overlooked this message :(
Hello,
I'm trying to modify the Player example and to separate the on_exit/on_entry template function definition from declaration so I can hide the actual implementation details.
"My.h" ... namespace myNamespace { ... // Concrete FSM implementation struct player_state_machine : public msm::front::state_machine_def
{ ... struct Playing : msm::front::state<> { template void on_entry(event const &, player_state_machine & ); // { "My Secret Code } } ...... } } "My.cpp"
namespace myNamespace { ... template
void myNamespace::player_state_machine::Playing::on_entry(Event const &, player_state_machine & ); { Here I want to put the actual implementation... } Is this feasible ?
I'm afraid no.
If not - what are the alternatives ? As I previously said - putting the implementation into the header is not an option.
You could forward the on_entry call to a non-template method of Playing (or several overloaded non-template methods) which you only declare in your header and implement in a cpp. The state itself is usually not a template class.
Any help will be appreciated.
Evgeni
HTH, Christophe