title: How to pass additional arguments int state entry or exit function in boost MSM
body: <p>I want to provide my own function arguments in the Boost.MSM state entry or exit function. Is that possible?</p>
  
  <p>For example, the original example is:</p>
  
  <pre><code>BOOST_MSM_EUML_ACTION(state_entry)
  {
    template &lt;class Event, class Fsm, class State&gt;
    void operator()(const Event &amp;ev, Fsm &amp;fsm, State &amp;state) const
    {
      std::cout &lt;&lt; "Entering\n";
    }
  };
  
  BOOST_MSM_EUML_ACTION(state_exit)
  {
    template &lt;class Event, class Fsm, class State&gt;
    void operator()(const Event &amp;ev, Fsm &amp;fsm, State &amp;state) const
    {
      std::cout &lt;&lt; "Exiting\n";
    }
  };
  
  BOOST_MSM_EUML_STATE((state_entry, state_exit), Off)
  BOOST_MSM_EUML_STATE((state_entry, state_exit), On)
  </code></pre>
  
  <p>What I want is something like:</p>
  
  <pre><code>BOOST_MSM_EUML_ACTION(state_entry)
  {
    template &lt;class Event, class Fsm, class State&gt;
    void operator()(const Event &amp;ev, Fsm &amp;fsm, State &amp;state, int n) const
    {
      std::cout &lt;&lt; "Entering\n";
    }
  };
  
  BOOST_MSM_EUML_STATE((state_entry(100), state_exit), Off)
  </code></pre>