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

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

?? stl_rope.h

?? STL 最新源代碼
?? H
?? 第 1 頁 / 共 5 頁
字號:
//// Some of the static member functions of _RopeRep have identically// 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)        : _Rope_rep_base<_CharT,_Alloc>(__size, __a),#         ifndef __GC          _Refcount_Base(1),#         endif          _M_tag(__t), _M_is_balanced(__b), _M_depth(__d), _M_c_string(0)    { }#   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)        : _Rope_RopeRep<_CharT,_Alloc>(_S_leaf, 0, true, __size, __a),          _M_data(__d)        {        __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)      : _Rope_RopeRep<_CharT,_Alloc>(_S_concat,                                     max(__l->_M_depth, __r->_M_depth) + 1,                                     false,                                     __l->_M_size + __r->_M_size, __a),        _M_left(__l), _M_right(__r)      {}# 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)      : _Rope_RopeRep<_CharT,_Alloc>(_S_function, 0, true, __size, __a)      , _M_fn(__f)#       ifndef __GC      , _M_delete_when_done(__d)#       endif    {        __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};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区欧美激情| 国产九色精品成人porny| 亚洲丝袜美腿综合| 国产精品综合一区二区三区| 日本视频中文字幕一区二区三区| 欧美成人a∨高清免费观看| 亚洲欧洲综合另类| 久久先锋影音av鲁色资源网| 亚洲一区av在线| 蜜桃视频免费观看一区| 欧美精品三级日韩久久| 欧美福利视频一区| 亚洲人123区| 亚洲h在线观看| 欧美日韩国产天堂| 2023国产精品自拍| 亚洲一区精品在线| 国产喂奶挤奶一区二区三区| 波多野结衣亚洲一区| 91精品欧美久久久久久动漫 | 在线视频欧美区| 日日夜夜精品视频天天综合网| 欧美日韩午夜精品| 91在线播放网址| av成人老司机| 日韩精品电影在线| 亚洲夂夂婷婷色拍ww47| 日韩一区二区中文字幕| 亚洲成人免费在线观看| 日本欧美加勒比视频| 一区二区欧美视频| 精品视频在线免费| 欧美一区二区高清| 波多野结衣亚洲一区| 国产99久久久国产精品潘金| 精品在线视频一区| 亚洲gay无套男同| 国产成人亚洲精品青草天美 | 午夜精品久久久久久久蜜桃app| 国产精品国产三级国产| 精品国产一区二区三区av性色 | 欧美日韩成人激情| 日韩欧美综合一区| av亚洲精华国产精华| 欧美精品在线一区二区三区| 欧美亚洲综合一区| 蜜桃视频免费观看一区| 欧美色窝79yyyycom| 欧美激情综合五月色丁香小说| 91视频免费看| 777xxx欧美| 欧美一区二区三区白人| 成人a免费在线看| 91视频com| 日韩1区2区3区| 欧美伊人精品成人久久综合97| 国产乱码精品1区2区3区| 国产真实乱子伦精品视频| 色综合色狠狠天天综合色| 欧美精品一二三四| 日韩av中文字幕一区二区三区| 国产麻豆午夜三级精品| 欧美国产97人人爽人人喊| 亚洲欧美日韩国产成人精品影院 | 国产精品91一区二区| 乱中年女人伦av一区二区| 日韩理论片在线| 国产九色sp调教91| 久久综合狠狠综合久久综合88| 成人av手机在线观看| 久久精品男人天堂av| 自拍偷在线精品自拍偷无码专区| 精品国产三级a在线观看| 成人99免费视频| 欧美无乱码久久久免费午夜一区 | 精久久久久久久久久久| 国v精品久久久网| 日韩av不卡一区二区| 亚洲精品一区二区三区四区高清| 成人免费高清在线| 7777精品伊人久久久大香线蕉超级流畅| 中文字幕人成不卡一区| 久久国产精品72免费观看| 免费一级片91| 国内精品自线一区二区三区视频| 91精品国产综合久久福利软件| 精品污污网站免费看| 白白色 亚洲乱淫| 精油按摩中文字幕久久| 蜜桃在线一区二区三区| 粉嫩蜜臀av国产精品网站| 99re8在线精品视频免费播放| 国产一区二区三区精品视频| 欧美日韩中文国产| 日韩女优视频免费观看| 欧美性受xxxx| 亚洲电影视频在线| www国产成人免费观看视频 深夜成人网| 欧美高清一级片在线观看| 欧美精品自拍偷拍| 欧美午夜精品一区二区三区 | 欧美极品美女视频| 国产·精品毛片| 欧美www视频| 国产精品人人做人人爽人人添| 国产精品沙发午睡系列990531| 亚洲精品在线免费观看视频| 午夜电影久久久| 亚洲免费成人av| 日韩美女一区二区三区| 国产精品第四页| 中文字幕一区二区三区视频| 综合自拍亚洲综合图不卡区| 一区二区三区中文字幕电影 | 国产亚洲精品aa| 国产精品天美传媒| 一区二区三区在线视频观看 | 国产精品资源网| 欧美日韩成人在线| 亚洲国产精品一区二区www在线| 久久影视一区二区| av欧美精品.com| 亚洲一区在线视频| 秋霞电影网一区二区| 日韩一级二级三级| 国产日韩精品一区| 免费欧美高清视频| 99精品在线免费| 精品黑人一区二区三区久久| 麻豆专区一区二区三区四区五区| 一区二区三区不卡视频| 国内久久精品视频| 亚洲主播在线观看| 日韩黄色免费网站| 免费成人av资源网| 国产露脸91国语对白| 狠狠色丁香久久婷婷综合丁香| 欧美一级片免费看| 亚洲五月六月丁香激情| 欧美一级精品大片| 91精品国产91久久久久久一区二区 | 激情综合色综合久久| 亚洲精品免费在线播放| 亚洲欧美日韩国产手机在线| 一区二区三区蜜桃网| 成人黄页毛片网站| 欧美日韩国产综合久久| 亚洲国产精华液网站w| 国产精品影视网| 欧美三级电影在线观看| 欧美电影免费观看高清完整版在线观看| 中文字幕av在线一区二区三区| 午夜精品福利一区二区三区av| 色94色欧美sute亚洲13| 日韩电影在线看| 欧美三级中文字幕在线观看| 日本aⅴ免费视频一区二区三区| 精品免费视频.| 成人福利视频网站| 自拍av一区二区三区| 亚洲国产精品ⅴa在线观看| 欧美国产日产图区| 中文字幕va一区二区三区| 欧美国产丝袜视频| 国产欧美一区二区三区在线看蜜臀 | 激情综合网激情| 日韩在线a电影| 欧美一级欧美一级在线播放| 欧美二区在线观看| 精品免费国产二区三区| 91麻豆免费看片| 麻豆久久久久久久| 精品视频在线视频| 亚洲国产激情av| 日韩综合一区二区| 久久午夜羞羞影院免费观看| 久久国产尿小便嘘嘘| 本田岬高潮一区二区三区| 欧美一级黄色大片| 国产日韩欧美a| 久久精品亚洲一区二区三区浴池| 国产香蕉久久精品综合网| 最好看的中文字幕久久| 亚洲电影在线免费观看| 水蜜桃久久夜色精品一区的特点| 美女一区二区在线观看| 亚洲综合在线五月| 国产成人综合自拍| 欧美日韩中文字幕精品| 精品国产一区二区国模嫣然| 欧美午夜精品免费| 国产三级一区二区| 另类调教123区 | 337p亚洲精品色噜噜噜| 久久综合精品国产一区二区三区| 久久久久久9999| 久久99久国产精品黄毛片色诱| 久久电影国产免费久久电影| 在线成人av影院| 欧美一区二区视频免费观看|