plemented as follows:</p>
  <pre>
struct make_choice : sc::event&lt; make_choice &gt; {};

// universal choice point base class template
template&lt; class MostDerived, class Context &gt;
struct choice_point : sc::state&lt; MostDerived, Context &gt;
{
  typedef sc::state&lt; MostDerived, Context &gt; base_type;
  typedef typename base_type::my_context my_context;
  typedef choice_point my_base;

  choice_point( my_context ctx ) : base_type( ctx )
  {
    this-&gt;post_event( boost::intrusive_ptr&lt; make_ch