<div dir="ltr"><div><div><div><div><div>Hi,<br><br></div>I tried to enhance the backend of boost::msm by inheriting from boost::msm::back::state_machine.<br></div>When doing so, I cannot access members of my subclass in the states.<br><br></div><div>When compiling the attached example, I get this error message:<br><br><b>error: ‘class boost::msm::back::state_machine&lt;fsm_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_&gt;’ has no member named ‘test’</b><br></div><br></div>How can I &quot;inject&quot; extended_back_machine as the type being passed as &quot;FSM&quot; to the state?<br><br></div>Bye<br>Manuel<br><div><div><br>####################################<br><br>template&lt;typename FrontMachine&gt;<br>struct extended_back_machine : public boost::msm::back::state_machine&lt;FrontMachine&gt;<br>{<br>  void test()<br>  {<br>    std::cout &lt;&lt; &quot;test&quot; &lt;&lt; std::endl;<br>  }<br>};<br><br><br>struct fsm_ : public boost::msm::front::state_machine_def&lt;fsm_&gt;<br>{<br>  struct State : public boost::msm::front::state&lt;&gt;<br>  {<br>    template &lt;class Event,class FSM&gt;<br>    void on_entry(Event const&amp;, FSM&amp; fsm)<br>    {<br>      fsm.test();<br>    }<br>  };<br>  typedef State initial_state;<br>};<br><br><br>int main()<br>{<br>  typedef extended_back_machine&lt;fsm_&gt; fsm;<br>  fsm m;<br>  m.start();<br>  return 0;<br>}<br><div><br>####################################</div></div></div></div>