亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stl_rope.h

?? The Standard Template Library, or STL, is a C++ library of container classes, algorithms, and iterat
?? H
?? 第 1 頁 / 共 5 頁
字號:
// named functions in rope that simply invoke the _RopeRep versions.//// A macro to introduce various allocation and deallocation functions// These need to be defined differently depending on whether or not// we are using standard conforming allocators, and whether the allocator// instances have real state.  Thus this macro is invoked repeatedly// with different definitions of __ROPE_DEFINE_ALLOC.// __ROPE_DEFINE_ALLOC(type,name) defines //   type * name_allocate(size_t) and//   void name_deallocate(tipe *, size_t)// Both functions may or may not be static.#define __ROPE_DEFINE_ALLOCS(__a) \        __ROPE_DEFINE_ALLOC(_CharT,_Data) /* character data */ \        typedef _Rope_RopeConcatenation<_CharT,__a> __C; \        __ROPE_DEFINE_ALLOC(__C,_C) \        typedef _Rope_RopeLeaf<_CharT,__a> __L; \        __ROPE_DEFINE_ALLOC(__L,_L) \        typedef _Rope_RopeFunction<_CharT,__a> __F; \        __ROPE_DEFINE_ALLOC(__F,_F) \        typedef _Rope_RopeSubstring<_CharT,__a> __S; \        __ROPE_DEFINE_ALLOC(__S,_S)//  Internal rope nodes potentially store a copy of the allocator//  instance used to allocate them.  This is mostly redundant.//  But the alternative would be to pass allocator instances around//  in some form to nearly all internal functions, since any pointer//  assignment may result in a zero reference count and thus require//  deallocation.//  The _Rope_rep_base class encapsulates//  the differences between SGI-style allocators and standard-conforming//  allocators.#ifdef __STL_USE_STD_ALLOCATORS#define __STATIC_IF_SGI_ALLOC  /* not static */// Base class for ordinary allocators.template <class _CharT, class _Allocator, bool _IsStatic>class _Rope_rep_alloc_base {public:  typedef typename _Alloc_traits<_CharT,_Allocator>::allocator_type          allocator_type;  allocator_type get_allocator() const { return _M_data_allocator; }  _Rope_rep_alloc_base(size_t __size, const allocator_type& __a)        : _M_size(__size), _M_data_allocator(__a) {}  size_t _M_size;       // This is here only to avoid wasting space                // for an otherwise empty base class.  protected:    allocator_type _M_data_allocator;# define __ROPE_DEFINE_ALLOC(_Tp, __name) \        typedef typename \          _Alloc_traits<_Tp,_Allocator>::allocator_type __name##Allocator; \        /*static*/ _Tp * __name##_allocate(size_t __n) \          { return __name##Allocator(_M_data_allocator).allocate(__n); } \        void __name##_deallocate(_Tp* __p, size_t __n) \          { __name##Allocator(_M_data_allocator).deallocate(__p, __n); }  __ROPE_DEFINE_ALLOCS(_Allocator);# undef __ROPE_DEFINE_ALLOC};// Specialization for allocators that have the property that we don't//  actually have to store an allocator object.  template <class _CharT, class _Allocator>class _Rope_rep_alloc_base<_CharT,_Allocator,true> {public:  typedef typename _Alloc_traits<_CharT,_Allocator>::allocator_type          allocator_type;  allocator_type get_allocator() const { return allocator_type(); }  _Rope_rep_alloc_base(size_t __size, const allocator_type&)                : _M_size(__size) {}  size_t _M_size;  protected:# define __ROPE_DEFINE_ALLOC(_Tp, __name) \        typedef typename \          _Alloc_traits<_Tp,_Allocator>::_Alloc_type __name##Alloc; \        typedef typename \          _Alloc_traits<_Tp,_Allocator>::allocator_type __name##Allocator; \        static _Tp* __name##_allocate(size_t __n) \                { return __name##Alloc::allocate(__n); } \        void __name##_deallocate(_Tp *__p, size_t __n) \                { __name##Alloc::deallocate(__p, __n); }  __ROPE_DEFINE_ALLOCS(_Allocator);# undef __ROPE_DEFINE_ALLOC};template <class _CharT, class _Alloc>struct _Rope_rep_base  : public _Rope_rep_alloc_base<_CharT,_Alloc,                                _Alloc_traits<_CharT,_Alloc>::_S_instanceless>{  typedef _Rope_rep_alloc_base<_CharT,_Alloc,                               _Alloc_traits<_CharT,_Alloc>::_S_instanceless>          _Base;  typedef typename _Base::allocator_type allocator_type;  _Rope_rep_base(size_t __size, const allocator_type& __a)    : _Base(__size, __a) {}};    #else /* !__STL_USE_STD_ALLOCATORS */#define __STATIC_IF_SGI_ALLOC statictemplate <class _CharT, class _Alloc> class _Rope_rep_base {public:  typedef _Alloc allocator_type;  static allocator_type get_allocator() { return allocator_type(); }  _Rope_rep_base(size_t __size, const allocator_type&) : _M_size(__size) {}  size_t _M_size;protected:# define __ROPE_DEFINE_ALLOC(_Tp, __name) \        typedef simple_alloc<_Tp, _Alloc> __name##Alloc; \        static _Tp* __name##_allocate(size_t __n) \                { return __name##Alloc::allocate(__n); } \        static void __name##_deallocate(_Tp* __p, size_t __n) \                { __name##Alloc::deallocate(__p, __n); }  __ROPE_DEFINE_ALLOCS(_Alloc);# undef __ROPE_DEFINE_ALLOC};#endif /* __STL_USE_STD_ALLOCATORS */template<class _CharT, class _Alloc>struct _Rope_RopeRep : public _Rope_rep_base<_CharT,_Alloc># ifndef __GC    , _Refcount_Base# endif{    public:    enum { _S_max_rope_depth = 45 };    enum _Tag {_S_leaf, _S_concat, _S_substringfn, _S_function};    _Tag _M_tag:8;    bool _M_is_balanced:8;    unsigned char _M_depth;    __GC_CONST _CharT* _M_c_string;                        /* Flattened version of string, if needed.  */                        /* typically 0.                             */                        /* If it's not 0, then the memory is owned  */                        /* by this node.                            */                        /* In the case of a leaf, this may point to */                        /* the same memory as the data field.       */    typedef typename _Rope_rep_base<_CharT,_Alloc>::allocator_type			allocator_type;    _Rope_RopeRep(_Tag __t, int __d, bool __b, size_t __size,                  allocator_type __a)        : _M_tag(__t), _M_depth(__d), _M_is_balanced(__b), _M_c_string(0),          _Rope_rep_base<_CharT,_Alloc>(__size, __a)#         ifndef __GC	  , _Refcount_Base(1)#	  endif    { }#   ifdef __GC        void _M_incr () {}#   endif#   ifdef __STL_USE_STD_ALLOCATORS        static void _S_free_string(__GC_CONST _CharT*, size_t __len,                                   allocator_type __a);#       define __STL_FREE_STRING(__s, __l, __a) _S_free_string(__s, __l, __a);#   else        static void _S_free_string(__GC_CONST _CharT*, size_t __len);#       define __STL_FREE_STRING(__s, __l, __a) _S_free_string(__s, __l);#   endif                        // Deallocate data section of a leaf.                        // This shouldn't be a member function.                        // But its hard to do anything else at the                        // moment, because it's templatized w.r.t.                        // an allocator.                        // Does nothing if __GC is defined.#   ifndef __GC          void _M_free_c_string();          void _M_free_tree();                        // Deallocate t. Assumes t is not 0.          void _M_unref_nonnil()          {              if (0 == _M_decr()) _M_free_tree();          }          void _M_ref_nonnil()          {              _M_incr();          }          static void _S_unref(_Rope_RopeRep* __t)          {              if (0 != __t) {                  __t->_M_unref_nonnil();              }          }          static void _S_ref(_Rope_RopeRep* __t)          {              if (0 != __t) __t->_M_incr();          }          static void _S_free_if_unref(_Rope_RopeRep* __t)          {              if (0 != __t && 0 == __t->_M_ref_count) __t->_M_free_tree();          }#   else /* __GC */          void _M_unref_nonnil() {}          void _M_ref_nonnil() {}          static void _S_unref(_Rope_RopeRep*) {}          static void _S_ref(_Rope_RopeRep*) {}          static void _S_free_if_unref(_Rope_RopeRep*) {}#   endif};template<class _CharT, class _Alloc>struct _Rope_RopeLeaf : public _Rope_RopeRep<_CharT,_Alloc> {  public:    // Apparently needed by VC++    // The data fields of leaves are allocated with some    // extra space, to accomodate future growth and for basic    // character types, to hold a trailing eos character.    enum { _S_alloc_granularity = 8 };    static size_t _S_rounded_up_size(size_t __n) {        size_t __size_with_eos;                     if (_S_is_basic_char_type((_CharT*)0)) {            __size_with_eos = __n + 1;        } else {            __size_with_eos = __n;        }#       ifdef __GC           return __size_with_eos;#       else           // Allow slop for in-place expansion.           return (__size_with_eos + _S_alloc_granularity-1)                        &~ (_S_alloc_granularity-1);#       endif    }    __GC_CONST _CharT* _M_data; /* Not necessarily 0 terminated. */                                /* The allocated size is         */                                /* _S_rounded_up_size(size), except */                                /* in the GC case, in which it   */                                /* doesn't matter.               */    typedef typename _Rope_rep_base<_CharT,_Alloc>::allocator_type			allocator_type;    _Rope_RopeLeaf(__GC_CONST _CharT* __d, size_t __size, allocator_type __a)        : _M_data(__d)        , _Rope_RopeRep<_CharT,_Alloc>(_S_leaf, 0, true, __size, __a)        {        __stl_assert(__size > 0);        if (_S_is_basic_char_type((_CharT *)0)) {            // already eos terminated.            _M_c_string = __d;        }    }        // The constructor assumes that d has been allocated with        // the proper allocator and the properly padded size.        // In contrast, the destructor deallocates the data:# ifndef __GC    ~_Rope_RopeLeaf() {        if (_M_data != _M_c_string) {            _M_free_c_string();        }        __STL_FREE_STRING(_M_data, _M_size, get_allocator());    }# endif};template<class _CharT, class _Alloc>struct _Rope_RopeConcatenation : public _Rope_RopeRep<_CharT,_Alloc> {  public:    _Rope_RopeRep<_CharT,_Alloc>* _M_left;    _Rope_RopeRep<_CharT,_Alloc>* _M_right;    typedef typename _Rope_rep_base<_CharT,_Alloc>::allocator_type			allocator_type;    _Rope_RopeConcatenation(_Rope_RopeRep<_CharT,_Alloc>* __l,                             _Rope_RopeRep<_CharT,_Alloc>* __r,                             allocator_type __a)      : _M_left(__l), _M_right(__r)      , _Rope_RopeRep<_CharT,_Alloc>(          _S_concat, max(__l->_M_depth, __r->_M_depth) + 1, false,          __l->_M_size + __r->_M_size, __a)      {}# ifndef __GC    ~_Rope_RopeConcatenation() {        _M_free_c_string();        _M_left->_M_unref_nonnil();        _M_right->_M_unref_nonnil();    }# endif};template<class _CharT, class _Alloc>struct _Rope_RopeFunction : public _Rope_RopeRep<_CharT,_Alloc> {  public:    char_producer<_CharT>* _M_fn;#   ifndef __GC      bool _M_delete_when_done; // Char_producer is owned by the                                // rope and should be explicitly                                // deleted when the rope becomes                                // inaccessible.#   else      // In the GC case, we either register the rope for      // finalization, or not.  Thus the field is unnecessary;      // the information is stored in the collector data structures.      // We do need a finalization procedure to be invoked by the      // collector.      static void _S_fn_finalization_proc(void * __tree, void *) {        delete ((_Rope_RopeFunction *)__tree) -> _M_fn;      }#   endif    typedef typename _Rope_rep_base<_CharT,_Alloc>::allocator_type					allocator_type;    _Rope_RopeFunction(char_producer<_CharT>* __f, size_t __size,                        bool __d, allocator_type __a)      : _M_fn(__f)#       ifndef __GC      , _M_delete_when_done(__d)#       endif      , _Rope_RopeRep<_CharT,_Alloc>(_S_function, 0, true, __size, __a) {        __stl_assert(__size > 0);#       ifdef __GC            if (__d) {                GC_REGISTER_FINALIZER(                  this, _Rope_RopeFunction::_S_fn_finalization_proc, 0, 0, 0);            }#       endif    }# ifndef __GC    ~_Rope_RopeFunction() {          _M_free_c_string();          if (_M_delete_when_done) {              delete _M_fn;          }    }# endif};// Substring results are usually represented using just// concatenation nodes.  But in the case of very long flat ropes// or ropes with a functional representation that isn't practical.// In that case, we represent the __result as a special case of// RopeFunction, whose char_producer points back to the rope itself.// In all cases except repeated substring operations and// deallocation, we treat the __result as a RopeFunction.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品午夜久久福利影院| 国产伦精品一区二区三区免费 | 久色婷婷小香蕉久久| 亚洲综合色区另类av| 亚洲免费观看高清完整版在线观看| 久久久久9999亚洲精品| 久久综合久久综合九色| 国产视频在线观看一区二区三区 | 午夜天堂影视香蕉久久| 亚洲国产精品久久艾草纯爱| 亚洲国产综合91精品麻豆| 香蕉久久一区二区不卡无毒影院| 亚洲最新视频在线观看| 午夜久久福利影院| 美美哒免费高清在线观看视频一区二区 | 在线观看免费一区| 欧美猛男超大videosgay| 欧美一级免费观看| 久久久亚洲国产美女国产盗摄| 国产欧美视频一区二区三区| 亚洲老妇xxxxxx| 免费在线观看一区| 成人avav在线| 欧美日本一区二区三区| 欧美变态口味重另类| 国产精品久久久久婷婷二区次| 亚洲欧洲性图库| 日本不卡123| 99这里只有久久精品视频| 色视频一区二区| 日韩精品一区在线| 亚洲精品乱码久久久久久日本蜜臀| 一二三四社区欧美黄| 国产一区二区影院| 欧美性生活影院| 久久久久久久电影| 亚洲成a人v欧美综合天堂| 国产高清久久久久| 欧美午夜精品一区二区三区| 久久精品一区二区三区不卡| 一区二区三区日韩| 国产精品影视在线| 91精品国产综合久久久久久 | 99久久精品国产观看| 日韩一区国产二区欧美三区| 亚洲人精品一区| 国产精品一区一区| 日韩午夜中文字幕| 亚洲一区二三区| 成人免费毛片a| 欧美成人一区二区三区片免费| 一区二区成人在线| 国产v综合v亚洲欧| 26uuu色噜噜精品一区二区| 亚洲国产精品久久久久婷婷884| 国产九色sp调教91| 日韩一区二区电影在线| 亚洲成人精品影院| 色视频一区二区| 亚洲婷婷综合色高清在线| 国产成人av电影在线| 久久久综合视频| 免费人成黄页网站在线一区二区 | 青青草国产成人99久久| 欧美伊人久久大香线蕉综合69 | 亚洲成av人片在线| 色婷婷激情综合| 亚洲欧美日韩系列| 色综合 综合色| 国产精品欧美综合在线| 高清不卡一区二区在线| 精品国产123| 另类成人小视频在线| 日韩三级免费观看| 九九九久久久精品| 久久精品视频在线看| 国内精品嫩模私拍在线| 久久精品日产第一区二区三区高清版| 精品亚洲成a人在线观看| 精品久久久久一区| 国产麻豆91精品| 久久综合丝袜日本网| 美女性感视频久久| 精品毛片乱码1区2区3区| 韩国精品久久久| 欧美国产日本韩| 91老司机福利 在线| 亚洲中国最大av网站| 宅男在线国产精品| 极品少妇xxxx精品少妇偷拍| 欧美激情中文字幕一区二区| 成人免费高清在线| 一区二区高清视频在线观看| 91精品国产高清一区二区三区| 日本91福利区| 国产精品网站在线观看| 91免费看`日韩一区二区| 天堂蜜桃91精品| 欧美成人bangbros| 成人黄色免费短视频| 一区二区三区在线视频免费| 91麻豆精品国产91久久久资源速度| 免费高清视频精品| 最新欧美精品一区二区三区| 欧美剧在线免费观看网站| 国产风韵犹存在线视精品| 亚洲色图欧美偷拍| 日韩一区二区三区观看| av不卡在线播放| 日韩成人一区二区三区在线观看| 欧美高清在线视频| 欧美人妇做爰xxxⅹ性高电影| 国产精品一区二区久激情瑜伽| 中文字幕欧美一| 亚洲精品一区二区三区蜜桃下载| 99re热这里只有精品免费视频| 美国毛片一区二区| 一区二区高清视频在线观看| 久久精品欧美一区二区三区麻豆 | 美女网站色91| 一区二区三区中文字幕在线观看| 欧美大片在线观看一区二区| 在线免费av一区| 国产精品亚洲成人| 蜜臀精品久久久久久蜜臀| 亚洲精品欧美在线| 国产精品久久久久久久裸模| 日韩一区二区三区在线| 色哟哟一区二区| 国产91丝袜在线播放九色| 日韩成人午夜电影| 亚洲国产精品一区二区尤物区| 国产欧美视频一区二区| 欧美成人欧美edvon| 在线播放91灌醉迷j高跟美女| 91视频免费观看| av在线不卡观看免费观看| 国产麻豆成人精品| 九九精品视频在线看| 免费日韩伦理电影| 日韩中文字幕区一区有砖一区| 亚洲狼人国产精品| 亚洲另类一区二区| 亚洲乱码国产乱码精品精的特点 | 另类小说图片综合网| 亚洲午夜免费福利视频| 夜夜夜精品看看| 亚洲一区在线观看免费| 亚洲国产一区二区在线播放| 一区二区国产视频| 亚洲大片精品永久免费| 午夜亚洲福利老司机| 婷婷成人激情在线网| 日本91福利区| 精品亚洲成a人在线观看| 精品一区二区在线视频| 国产精品自拍在线| 不卡在线视频中文字幕| 播五月开心婷婷综合| 99视频在线观看一区三区| 97久久人人超碰| 欧美亚洲日本国产| 日韩一卡二卡三卡国产欧美| 日韩免费看的电影| 欧美国产一区视频在线观看| 中文字幕一区二区三区四区不卡| 亚洲老司机在线| 香蕉av福利精品导航| 久久99久久99精品免视看婷婷| 国产精品一二三四五| 99久久99久久精品免费观看| 在线观看视频91| 日韩免费在线观看| 国产精品人妖ts系列视频| 亚洲一卡二卡三卡四卡无卡久久 | 亚洲国产精品一区二区久久 | 亚洲精品欧美二区三区中文字幕| 亚洲一区二区三区美女| 日韩成人一级大片| 成人开心网精品视频| 欧美在线观看你懂的| 欧美成人精精品一区二区频| 国产三级精品三级| 亚洲一区在线视频| 国模套图日韩精品一区二区| 波多野洁衣一区| 欧美精品v日韩精品v韩国精品v| 精品国产免费久久| 一区二区三区高清| 国产在线视频不卡二| 日本韩国一区二区| 日韩一区二区三区四区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 一区二区理论电影在线观看| 午夜精品久久久久久| 成人免费福利片| 欧美大片一区二区| 亚洲第一主播视频| 成人黄页毛片网站| 精品国产乱码久久久久久影片|