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

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

?? stl_rope.h

?? The Standard Template Library, or STL, is a C++ library of container classes, algorithms, and iterat
?? H
?? 第 1 頁 / 共 5 頁
字號:
/* * Copyright (c) 1997-1998 * Silicon Graphics Computer Systems, Inc. * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation.  Silicon Graphics makes no * representations about the suitability of this software for any * purpose.  It is provided "as is" without express or implied warranty. *//* NOTE: This is an internal header file, included by other STL headers. *   You should not attempt to use it directly. */// rope<_CharT,_Alloc> is a sequence of _CharT.// Ropes appear to be mutable, but update operations// really copy enough of the data structure to leave the original// valid.  Thus ropes can be logically copied by just copying// a pointer value.#ifndef __SGI_STL_INTERNAL_ROPE_H# define __SGI_STL_INTERNAL_ROPE_H# ifdef __GC#   define __GC_CONST const# else#   include <stl_threads.h>#   define __GC_CONST   // constant except for deallocation# endif# ifdef __STL_SGI_THREADS#    include <mutex.h># endif__STL_BEGIN_NAMESPACE#if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)#pragma set woff 1174#endif// The _S_eos function is used for those functions that// convert to/from C-like strings to detect the end of the string.// The end-of-C-string character.// This is what the draft standard says it should be.template <class _CharT>inline _CharT _S_eos(_CharT*) { return _CharT(); }// Test for basic character types.// For basic character types leaves having a trailing eos.template <class _CharT>inline bool _S_is_basic_char_type(_CharT*) { return false; }template <class _CharT>inline bool _S_is_one_byte_char_type(_CharT*) { return false; }inline bool _S_is_basic_char_type(char*) { return true; }inline bool _S_is_one_byte_char_type(char*) { return true; }inline bool _S_is_basic_char_type(wchar_t*) { return true; }// Store an eos iff _CharT is a basic character type.// Do not reference _S_eos if it isn't.template <class _CharT>inline void _S_cond_store_eos(_CharT&) {}inline void _S_cond_store_eos(char& __c) { __c = 0; }inline void _S_cond_store_eos(wchar_t& __c) { __c = 0; }// char_producers are logically functions that generate a section of// a string.  These can be convereted to ropes.  The resulting rope// invokes the char_producer on demand.  This allows, for example,// files to be viewed as ropes without reading the entire file.template <class _CharT>class char_producer {    public:        virtual ~char_producer() {};        virtual void operator()(size_t __start_pos, size_t __len,                                 _CharT* __buffer) = 0;        // Buffer should really be an arbitrary output iterator.        // That way we could flatten directly into an ostream, etc.        // This is thoroughly impossible, since iterator types don't        // have runtime descriptions.};// Sequence buffers://// Sequence must provide an append operation that appends an// array to the sequence.  Sequence buffers are useful only if// appending an entire array is cheaper than appending element by element.// This is true for many string representations.// This should  perhaps inherit from ostream<sequence::value_type>// and be implemented correspondingly, so that they can be used// for formatted.  For the sake of portability, we don't do this yet.//// For now, sequence buffers behave as output iterators.  But they also// behave a little like basic_ostringstream<sequence::value_type> and a// little like containers.template<class _Sequence, size_t _Buf_sz = 100#   if defined(__sgi) && !defined(__GNUC__)#        define __TYPEDEF_WORKAROUND         ,class _V = typename _Sequence::value_type#   endif        >// The 3rd parameter works around a common compiler bug.class sequence_buffer : public output_iterator {    public:#       ifndef __TYPEDEF_WORKAROUND            typedef typename _Sequence::value_type value_type;#       else            typedef _V value_type;#       endif    protected:        _Sequence* _M_prefix;        value_type _M_buffer[_Buf_sz];        size_t     _M_buf_count;    public:        void flush() {            _M_prefix->append(_M_buffer, _M_buffer + _M_buf_count);            _M_buf_count = 0;        }        ~sequence_buffer() { flush(); }        sequence_buffer() : _M_prefix(0), _M_buf_count(0) {}        sequence_buffer(const sequence_buffer& __x) {            _M_prefix = __x._M_prefix;            _M_buf_count = __x._M_buf_count;            copy(__x._M_buffer, __x._M_buffer + __x._M_buf_count, _M_buffer);        }        sequence_buffer(sequence_buffer& __x) {            __x.flush();            _M_prefix = __x._M_prefix;            _M_buf_count = 0;        }        sequence_buffer(_Sequence& __s) : _M_prefix(&__s), _M_buf_count(0) {}        sequence_buffer& operator= (sequence_buffer& __x) {            __x.flush();            _M_prefix = __x._M_prefix;            _M_buf_count = 0;            return *this;        }        sequence_buffer& operator= (const sequence_buffer& __x) {            _M_prefix = __x._M_prefix;            _M_buf_count = __x._M_buf_count;            copy(__x._M_buffer, __x._M_buffer + __x._M_buf_count, _M_buffer);            return *this;        }        void push_back(value_type __x)        {            if (_M_buf_count < _Buf_sz) {                _M_buffer[_M_buf_count] = __x;                ++_M_buf_count;            } else {                flush();                _M_buffer[0] = __x;                _M_buf_count = 1;            }        }        void append(value_type* __s, size_t __len)        {            if (__len + _M_buf_count <= _Buf_sz) {                size_t __i = _M_buf_count;                size_t __j = 0;                for (; __j < __len; __i++, __j++) {                    _M_buffer[__i] = __s[__j];                }                _M_buf_count += __len;            } else if (0 == _M_buf_count) {                _M_prefix->append(__s, __s + __len);            } else {                flush();                append(__s, __len);            }        }        sequence_buffer& write(value_type* __s, size_t __len)        {            append(__s, __len);            return *this;        }        sequence_buffer& put(value_type __x)        {            push_back(__x);            return *this;        }        sequence_buffer& operator=(const value_type& __rhs)        {            push_back(__rhs);            return *this;        }        sequence_buffer& operator*() { return *this; }        sequence_buffer& operator++() { return *this; }        sequence_buffer& operator++(int) { return *this; }};// The following should be treated as private, at least for now.template<class _CharT>class _Rope_char_consumer {    public:        // If we had member templates, these should not be virtual.        // For now we need to use run-time parametrization where        // compile-time would do.  Hence this should all be private        // for now.        // The symmetry with char_producer is accidental and temporary.        virtual ~_Rope_char_consumer() {};        virtual bool operator()(const _CharT* __buffer, size_t __len) = 0;};// First a lot of forward declarations.  The standard seems to require// much stricter "declaration before use" than many of the implementations// that preceded it.template<class _CharT, class _Alloc=__STL_DEFAULT_ALLOCATOR(_CharT)> class rope;template<class _CharT, class _Alloc> struct _Rope_RopeConcatenation;template<class _CharT, class _Alloc> struct _Rope_RopeLeaf;template<class _CharT, class _Alloc> struct _Rope_RopeFunction;template<class _CharT, class _Alloc> struct _Rope_RopeSubstring;template<class _CharT, class _Alloc> class _Rope_iterator;template<class _CharT, class _Alloc> class _Rope_const_iterator;template<class _CharT, class _Alloc> class _Rope_char_ref_proxy;template<class _CharT, class _Alloc> class _Rope_char_ptr_proxy;template<class _CharT, class _Alloc>bool operator== (const _Rope_char_ptr_proxy<_CharT,_Alloc>& __x,                 const _Rope_char_ptr_proxy<_CharT,_Alloc>& __y);template<class _CharT, class _Alloc>_Rope_const_iterator<_CharT,_Alloc> operator-        (const _Rope_const_iterator<_CharT,_Alloc>& __x,         ptrdiff_t __n);template<class _CharT, class _Alloc>_Rope_const_iterator<_CharT,_Alloc> operator+        (const _Rope_const_iterator<_CharT,_Alloc>& __x,         ptrdiff_t __n);template<class _CharT, class _Alloc>_Rope_const_iterator<_CharT,_Alloc> operator+        (ptrdiff_t __n,         const _Rope_const_iterator<_CharT,_Alloc>& __x);template<class _CharT, class _Alloc>bool operator==         (const _Rope_const_iterator<_CharT,_Alloc>& __x,         const _Rope_const_iterator<_CharT,_Alloc>& __y);template<class _CharT, class _Alloc>bool operator<         (const _Rope_const_iterator<_CharT,_Alloc>& __x,         const _Rope_const_iterator<_CharT,_Alloc>& __y);template<class _CharT, class _Alloc>ptrdiff_t operator-         (const _Rope_const_iterator<_CharT,_Alloc>& __x,         const _Rope_const_iterator<_CharT,_Alloc>& __y);template<class _CharT, class _Alloc>_Rope_iterator<_CharT,_Alloc> operator-        (const _Rope_iterator<_CharT,_Alloc>& __x,         ptrdiff_t __n);template<class _CharT, class _Alloc>_Rope_iterator<_CharT,_Alloc> operator+        (const _Rope_iterator<_CharT,_Alloc>& __x,         ptrdiff_t __n);template<class _CharT, class _Alloc>_Rope_iterator<_CharT,_Alloc> operator+        (ptrdiff_t __n,         const _Rope_iterator<_CharT,_Alloc>& __x);template<class _CharT, class _Alloc>bool operator==         (const _Rope_iterator<_CharT,_Alloc>& __x,         const _Rope_iterator<_CharT,_Alloc>& __y);template<class _CharT, class _Alloc>bool operator<         (const _Rope_iterator<_CharT,_Alloc>& __x,         const _Rope_iterator<_CharT,_Alloc>& __y);template<class _CharT, class _Alloc>ptrdiff_t operator-         (const _Rope_iterator<_CharT,_Alloc>& __x,         const _Rope_iterator<_CharT,_Alloc>& __y);template<class _CharT, class _Alloc>rope<_CharT,_Alloc> operator+ (const rope<_CharT,_Alloc>& __left,                               const rope<_CharT,_Alloc>& __right);        template<class _CharT, class _Alloc>rope<_CharT,_Alloc> operator+ (const rope<_CharT,_Alloc>& __left,                               const _CharT* __right);        template<class _CharT, class _Alloc>rope<_CharT,_Alloc> operator+ (const rope<_CharT,_Alloc>& __left,                               _CharT __right);        // Some helpers, so we can use power on ropes.// See below for why this isn't local to the implementation.// This uses a nonstandard refcount convention.// The result has refcount 0.template<class _CharT, class _Alloc>struct _Rope_Concat_fn       : public binary_function<rope<_CharT,_Alloc>, rope<_CharT,_Alloc>,                                     rope<_CharT,_Alloc> > {        rope<_CharT,_Alloc> operator() (const rope<_CharT,_Alloc>& __x,				const rope<_CharT,_Alloc>& __y) {                    return __x + __y;        }};template <class _CharT, class _Alloc>inlinerope<_CharT,_Alloc>identity_element(_Rope_Concat_fn<_CharT, _Alloc>){    return rope<_CharT,_Alloc>();}//// What follows should really be local to rope.  Unfortunately,// that doesn't work, since it makes it impossible to define generic// equality on rope iterators.  According to the draft standard, the// template parameters for such an equality operator cannot be inferred// from the occurence of a member class as a parameter.// (SGI compilers in fact allow this, but the __result wouldn't be// portable.)// Similarly, some of the static member functions are member functions// only to avoid polluting the global namespace, and to circumvent// restrictions on type inference for template functions.////// The internal data structure for representing a rope.  This is// private to the implementation.  A rope is really just a pointer// to one of these.//// A few basic functions for manipulating this data structure// are members of _RopeRep.  Most of the more complex algorithms// are implemented as rope members.//// Some of the static member functions of _RopeRep have identically

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品乱码久久久久久| 天堂在线亚洲视频| 精品视频123区在线观看| 粉嫩aⅴ一区二区三区四区五区| 三级成人在线视频| 亚洲妇女屁股眼交7| 五月天激情综合网| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲成人综合视频| 亚洲va国产天堂va久久en| 性做久久久久久久免费看| 午夜精品一区二区三区免费视频| 国产一二精品视频| 国产成人亚洲综合a∨婷婷| 久久国产麻豆精品| 国产精选一区二区三区 | 国产91丝袜在线观看| 国产一区二区三区综合| 成人中文字幕电影| 91福利小视频| 日韩精品一区二区三区蜜臀 | 久久精品国产免费看久久精品| 久久成人精品无人区| 国产成人午夜99999| av电影在线观看一区| 精品污污网站免费看| 欧美一级久久久| 欧美激情综合在线| 亚洲一区免费观看| 国产在线精品视频| 91无套直看片红桃| 91国模大尺度私拍在线视频| 欧美日韩高清一区二区不卡| 国产精品久久精品日日| 一区二区在线观看视频| 男人的天堂亚洲一区| eeuss影院一区二区三区| 5月丁香婷婷综合| 国产欧美精品一区二区三区四区| 亚洲精品视频在线看| 久久精品国产澳门| 色猫猫国产区一区二在线视频| 91精品国产欧美一区二区成人| 久久嫩草精品久久久久| 亚洲国产毛片aaaaa无费看 | 久久久亚洲午夜电影| 亚洲一二三区不卡| 高潮精品一区videoshd| 91精品国产高清一区二区三区 | 一区二区三区蜜桃| 国产成人午夜精品影院观看视频 | 欧美日韩国产经典色站一区二区三区| 精品国产91亚洲一区二区三区婷婷| 中文字幕一区二区三区不卡在线| 日本vs亚洲vs韩国一区三区二区| 97久久超碰国产精品电影| 精品国产99国产精品| 欧美日韩一区 二区 三区 久久精品| 精品国产乱码久久久久久夜甘婷婷| 中文字幕精品在线不卡| 日本午夜精品视频在线观看| 不卡的av电影| 欧美国产精品一区| 国产一区二区h| 日韩欧美激情一区| 免费日本视频一区| 欧美日韩国产另类一区| 亚洲综合色成人| 成人动漫一区二区三区| 国产片一区二区| 国产伦精品一区二区三区在线观看| 欧美一区二区三区影视| 日韩av一级片| 91麻豆精品国产自产在线观看一区 | 色嗨嗨av一区二区三区| 国产精品美女久久久久久久久久久 | 久久精品一区蜜桃臀影院| 亚洲精品视频自拍| 色综合久久综合中文综合网| 日本一区二区动态图| 国产一区二区不卡| 国产午夜精品在线观看| 国产成a人亚洲精| 欧美韩日一区二区三区| 成人国产精品免费观看| 国产精品美日韩| 色网综合在线观看| 亚洲一级在线观看| 91精品国产全国免费观看| 日韩高清不卡在线| 欧美不卡一区二区| 国产精品中文字幕一区二区三区| 国产婷婷精品av在线| 欧洲生活片亚洲生活在线观看| 一区二区三区国产精华| 欧美午夜精品久久久久久孕妇| 亚洲福利一区二区| 日韩片之四级片| 国产成人免费网站| 亚洲精品乱码久久久久久久久| 欧美在线免费播放| 极品少妇一区二区三区精品视频| 国产女人aaa级久久久级 | 免费在线观看视频一区| 亚洲精品一区二区三区福利| 国产不卡一区视频| 亚洲影视资源网| 欧美电影精品一区二区| 9色porny自拍视频一区二区| 一区二区三区毛片| 欧美大片在线观看一区| 波多野洁衣一区| 视频一区二区国产| 久久九九久久九九| 欧美午夜视频网站| 国产大片一区二区| 亚洲国产欧美日韩另类综合| 久久久精品中文字幕麻豆发布| 99这里只有精品| 久久97超碰国产精品超碰| 欧美激情一区二区三区全黄| 欧美日韩一区二区在线观看| 国产精品亚洲人在线观看| 亚洲综合成人在线视频| 久久久久久久久久久电影| 精品视频免费在线| 国产精品99久久久久久有的能看| 亚洲一区二区三区小说| 国产精品久久毛片| 久久综合久久鬼色中文字| 欧美视频在线一区| 99久久久无码国产精品| 国产精品中文字幕日韩精品| 日韩成人一级大片| 亚洲一级二级三级| 最新不卡av在线| 欧美激情一区二区三区全黄 | 欧美精品一区二区在线观看| 色久综合一二码| 成人av免费网站| 国产剧情一区在线| 精东粉嫩av免费一区二区三区| 一区二区成人在线观看| 亚洲色图一区二区| 一区二区中文视频| 国产精品嫩草久久久久| 国产视频一区二区三区在线观看| 欧美一区二区精美| 日韩午夜精品电影| 欧美一级理论性理论a| 在线成人高清不卡| 在线不卡免费av| 欧美理论在线播放| 欧美美女网站色| 欧美日韩久久一区| 91麻豆精品国产91久久久久| 欧美日韩美女一区二区| 欧美精选在线播放| 日韩一区二区三区免费看| 91精品国产一区二区三区香蕉| 欧美乱妇一区二区三区不卡视频| 欧美三级中文字幕| 91精品国产色综合久久不卡蜜臀| 91精品国模一区二区三区| 91精品国产色综合久久不卡电影| 在线综合视频播放| 日韩精品一区二区三区老鸭窝| 日韩精品中文字幕一区| 精品国产乱码久久久久久蜜臀| 久久亚洲一区二区三区明星换脸| 久久综合久久综合亚洲| 一区二区三区毛片| 视频一区二区三区中文字幕| 蜜桃久久久久久久| 丁香亚洲综合激情啪啪综合| www.欧美日韩| 欧美日韩一区二区不卡| 精品久久国产97色综合| 国产精品看片你懂得| 悠悠色在线精品| 毛片不卡一区二区| 粉嫩嫩av羞羞动漫久久久| 蜜桃视频第一区免费观看| 国产成人亚洲综合a∨婷婷| 色老汉一区二区三区| 日韩免费观看高清完整版| 国产精品传媒入口麻豆| 日韩激情av在线| 国产成人av一区二区三区在线| 99re这里只有精品首页| 337p亚洲精品色噜噜| 国产精品免费久久| 日韩国产成人精品| 不卡一卡二卡三乱码免费网站| 欧美无乱码久久久免费午夜一区 | 夜夜嗨av一区二区三区| 紧缚奴在线一区二区三区| 91福利在线观看| 欧美激情在线一区二区| 奇米888四色在线精品|