I'm very newbie in C++. I got the code about the finite state machine on github. There are things in the code I don't understand. For example, I don't know why the use using in the  struct ,and what is purpose of the line typename _state_instance<S>::value_type _state_instance<S>::value
  struct _state_instance
  {
    using value_type = S;
    using type = _state_instance<S>;
    static S value;
  };
  template<typename S>
  typename _state_instance<S>::value_type _state_instance<S>::value;
Thanks a lot!
