⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 leaf_state.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
#ifndef BOOST_STATECHART_DETAIL_LEAF_STATE_HPP_INCLUDED#define BOOST_STATECHART_DETAIL_LEAF_STATE_HPP_INCLUDED//////////////////////////////////////////////////////////////////////////////// Copyright 2002-2006 Andreas Huber Doenni// Distributed under the Boost Software License, Version 1.0. (See accompany-// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)//////////////////////////////////////////////////////////////////////////////#include <boost/statechart/detail/state_base.hpp>namespace boost{namespace statechart{namespace detail{//////////////////////////////////////////////////////////////////////////////template< class Allocator, class RttiPolicy >class leaf_state : public state_base< Allocator, RttiPolicy >{  typedef state_base< Allocator, RttiPolicy > base_type;  protected:    //////////////////////////////////////////////////////////////////////////    leaf_state( typename RttiPolicy::id_provider_type idProvider ) :      base_type( idProvider )    {    }    ~leaf_state() {}  public:    //////////////////////////////////////////////////////////////////////////    // The following declarations should be private.    // They are only public because many compilers lack template friends.    //////////////////////////////////////////////////////////////////////////    void set_list_position(      typename base_type::state_list_type::iterator listPosition )    {      listPosition_ = listPosition;    }    typedef typename base_type::leaf_state_ptr_type      direct_state_base_ptr_type;    virtual void remove_from_state_list(      typename base_type::state_list_type::iterator & statesEnd,      typename base_type::node_state_base_ptr_type & pOutermostUnstableState,      bool performFullExit )    {      --statesEnd;      swap( *listPosition_, *statesEnd );      ( *listPosition_ )->set_list_position( listPosition_ );      direct_state_base_ptr_type & pState = *statesEnd;      // Because the list owns the leaf_state, this leads to the immediate      // termination of this state.      pState->exit_impl( pState, pOutermostUnstableState, performFullExit );    }    virtual void exit_impl(      direct_state_base_ptr_type & pSelf,      typename base_type::node_state_base_ptr_type & pOutermostUnstableState,      bool performFullExit ) = 0;  private:    //////////////////////////////////////////////////////////////////////////    typename base_type::state_list_type::iterator listPosition_;};} // namespace detail} // namespace statechart} // namespace boost#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -