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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ptypes.h

?? PTypes (C++ Portable Types Library) is a simple alternative to the STL that includes multithreading
?? H
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
// contains the base ID, the next is for the second level of inheritance,// etc. total of 4 levels allowed for basic types. call classid() for an// object, mask out first N bytes of interest and compare with a CLASS_XXX// value. f.ex. to determine whether an object is of type infile or any// derivative: (o->classid() & 0xffff) == CLASS_INFILE. this scheme is for// internal use by PTypes and Objection; partly replaces the costly C++ RTTI// system.//// first level of inheritanceconst int CLASS_UNDEFINED = 0x00000000;const int CLASS_INSTM     = 0x00000001;const int CLASS_OUTSTM    = 0x00000002;const int CLASS_UNIT      = 0x00000003;// second level of inheritanceconst int CLASS_INFILE    = 0x00000100 | CLASS_INSTM;const int CLASS_OUTFILE   = 0x00000100 | CLASS_OUTSTM;const int CLASS_INMEMORY  = 0x00000200 | CLASS_INSTM;const int CLASS_OUTMEMORY = 0x00000200 | CLASS_OUTSTM;class ptpublic component: public unknown {protected:    friend class ox::ox_class;  // our friends in the Objection! system    friend class ox::ox_machine;    int           refcount;     // reference counting, used by addref() and release()    objlist*      freelist;     // list of components to notify about destruction, safer alternative to ref-counting    ox::ox_class* typeinfo;     // assigned by the Objection virtual machine if created using clone()    virtual void freenotify(component* sender);public:    component();    virtual ~component();    void addnotification(component* obj);    void delnotification(component* obj);        ptpublic friend component* addref(component*);    ptpublic friend bool release(component*);    inline ptpublic friend int refcount(component* c) { return c->refcount; }    virtual int classid();    ox::ox_class* get_typeinfo()     { return typeinfo; }};typedef component* pcomponent;template <class T> inline T* taddref(T* c)   // MSVC can't handle this template correctly if we name    { return (T*)addref((component*)c); }    // it as addref(). (gcc is fine though)template <class T> class compref{protected:    T* ref;public:    compref()                                   { ref = 0; }    compref(const compref& r)                   { ref = taddref<T>(r.ref); }    compref(T* u)                               { ref = taddref<T>(u); }    ~compref()                                  { release(ref); }    void operator= (const compref& r)           { release(ref); ref = taddref<T>(r.ref); }    void operator= (T* u)                       { release(ref); ref = taddref<T>(u); }    T&   operator* ()                           { return *ref; }    T*   operator-> ()                          { return ref; }    bool operator== (const compref& r) const    { return ref == r.ref; }    bool operator== (const T* u) const          { return ref == u; }    bool operator!= (const compref& r) const    { return ref != r.ref; }    bool operator!= (const T* u) const          { return ref != u; }         operator T* ()                         { return ref; }};// -------------------------------------------------------------------- //// ---  exception class ----------------------------------------------- //// -------------------------------------------------------------------- //class ptpublic exceptobj: public unknown {protected:    string message;public:    exceptobj(const char* imsg);    exceptobj(const string& imsg);    virtual ~exceptobj();    virtual string get_message() { return message; }};// -------------------------------------------------------------------- //// ---  object list --------------------------------------------------- //// -------------------------------------------------------------------- //class ptpublic objlist: public unknown {protected:    unknown**   list;    int         count;    int         capacity;    bool        ownobjects;    void idxerror() const;    void setcapacity(int newcap);    int  getcount() const { return count; }    void setcount(int newcount);    void grow();    void clear();    void insitem(int i, unknown* iobj);    void putitem(int i, unknown* iobj);    void delitem(int i);    unknown* getitem(int i) const  { return list[i]; }public:    objlist();    objlist(bool iownobjects);    virtual ~objlist();    void checkidx(int i) const                      { if (i < 0 || i >= count) idxerror(); }    friend inline int length(const objlist& s)      { return s.getcount(); }    friend inline void setlength(objlist& s,         int newcount)                               { s.setcount(newcount); }    friend inline void pack(objlist& s)             { s.setcapacity(s.count); }    friend inline void clear(objlist& s)            { s.clear(); }    ptpublic friend void ins(objlist& s, int i, unknown* iobj);    ptpublic friend int add(objlist& s, unknown* iobj);    ptpublic friend void put(objlist& s, int i, unknown* iobj);    ptpublic friend void del(objlist& s, int i);    ptpublic friend int indexof(const objlist& s, unknown* iobj);    ptpublic friend unknown* pop(objlist& s);    friend inline unknown* top(const objlist& s)    { return get(s, length(s) - 1); }    friend inline int push(objlist& s,         unknown* obj)                               { return add(s, obj); }#ifdef CHECK_BOUNDS    ptpublic friend unknown* get(const objlist& s, int i);#else    friend inline unknown* get(const objlist& s,         int i)                                      { return s.getitem(i); }#endif    unknown* operator[] (int i) const               { return PTYPES_NAMESPACE::get(*this, i); }};// a fully inlined objlist template for use with any class// derived from unknown. provided to get rid of typecasts.template <class T> class tobjlist: public objlist{public:    tobjlist(): objlist()  {}    tobjlist(bool iownobjects): objlist(iownobjects)  {}    friend inline void ins(tobjlist& s, int i, T* obj)        { PTYPES_NAMESPACE::ins(s, i, (unknown*)obj); }    friend inline int add(tobjlist& s, T* obj)        { return PTYPES_NAMESPACE::add(s, (unknown*)obj); }    friend inline void put(tobjlist& s, int i, T* obj)        { PTYPES_NAMESPACE::put(s, i, (unknown*)obj); }    friend inline int indexof(const tobjlist& s, T* obj)        { return PTYPES_NAMESPACE::indexof(s, (unknown*)obj); }    friend inline int push(tobjlist& s, T* obj)        { return PTYPES_NAMESPACE::push(s, (unknown*)obj); }    friend inline T* pop(tobjlist& s)        { return (T*)PTYPES_NAMESPACE::pop((objlist&)s); }    friend inline T* top(const tobjlist& s)        { return (T*)PTYPES_NAMESPACE::get(s, length(s) - 1); }    friend inline T* get(const tobjlist& s, int i)        { return (T*)PTYPES_NAMESPACE::get((const objlist&)s, i); }    T* operator[] (int i) const        { return (T*)PTYPES_NAMESPACE::get(*this, i); }};// -------------------------------------------------------------------- //// ---  string list --------------------------------------------------- //// -------------------------------------------------------------------- //struct _stritem {    string str;    unknown* obj;};typedef _stritem* pstritem;const int _stritemsize = sizeof(_stritem);enum slflags {    SL_SORTED = 0x0001,    SL_DUPLICATES = 0x0002,    SL_CASESENS = 0x0004,    SL_OWNOBJECTS = 0x0008};class ptpublic strlist: public unknown {protected:    _stritem*   list;    int         count;    int         capacity;    slflags     flags;    void idxerror() const;    void sortederror() const;    void notsortederror() const;    void duperror() const;    void setcapacity(int newcap);    int  getcount() const { return count; }    void grow();    void clear();    virtual int compare(const string& s1, const string& s2) const;    bool search(const string& s, int& index) const;    void insitem(int i, const string& istr, unknown* iobj);    void putstr(int i, const string& istr);    void putobj(int i, unknown* iobj);    void delitem(int i);    const string& getstr(int i) const  { return list[i].str; }    unknown* getobj(int i) const  { return list[i].obj; }public:    strlist();    strlist(slflags iflags);    virtual ~strlist();    void checkidx(int i) const                  { if (i < 0 || i >= count) idxerror(); }    bool get_sorted() const                     { return (SL_SORTED & flags) != 0; }    bool get_duplicates() const                 { return (SL_DUPLICATES & flags) != 0; }    bool get_casesens() const                   { return (SL_CASESENS & flags) != 0; }    bool get_ownobjects() const                 { return (SL_OWNOBJECTS & flags) != 0; }    int  get_capacity() const                   { return capacity; }    friend inline int  length(const strlist& s) { return s.getcount(); }    friend inline void clear(strlist& s)        { s.clear(); }    friend inline void pack(strlist& s)         { s.setcapacity(s.count); }    ptpublic friend bool search(const strlist& s, const string& key, int& index);    ptpublic friend void ins(strlist& s, int i, const string& istr, unknown* iobj);    ptpublic friend int  add(strlist& s, const string& istr, unknown* iobj);    ptpublic friend void put(strlist& s, int i, const string& istr, unknown* iobj);    ptpublic friend void put(strlist& s, int i, unknown* iobj);    ptpublic friend void del(strlist& s, int i);    ptpublic friend int  find(const strlist& s, const string& key);    ptpublic friend int  indexof(const strlist& s, unknown* iobj);    ptpublic friend string valueof(const strlist& s, const char* key);#ifdef CHECK_BOUNDS    ptpublic friend const string& getstr(const strlist& s, int i);    ptpublic friend unknown* get(const strlist& s, int i);#else    friend const string& getstr(const strlist& s, int i) { return s.getstr(i); }    friend inline unknown* get(const strlist& s, int i)  { return s.getobj(i); }#endif    unknown* operator[] (int i) const                    { return PTYPES_NAMESPACE::get(*this, i); }};template <class T> class tstrlist: public strlist{public:    tstrlist(): strlist() {}    tstrlist(slflags iflags): strlist(iflags)  {}    friend inline void ins(tstrlist& s, int i, const string& str, T* obj)        { PTYPES_NAMESPACE::ins(s, i, str, (unknown*)obj); }    friend inline int  add(tstrlist& s, const string& str, T* obj)        { return PTYPES_NAMESPACE::add(s, str, (unknown*)obj); }    friend inline void put(tstrlist& s, int i, const string& str, T* obj)        { PTYPES_NAMESPACE::put(s, i, str, (unknown*)obj); }    friend inline void put(tstrlist& s, int i, T* obj)        { PTYPES_NAMESPACE::put(s, i, (unknown*)obj); }    friend inline int indexof(const tstrlist& s, T* obj)        { return PTYPES_NAMESPACE::indexof(s, (unknown*)obj); }    friend inline T* get(const tstrlist& s, int i)        { return (T*)PTYPES_NAMESPACE::get((const strlist&)s, i); }    T* operator[] (int i) const        { return (T*)PTYPES_NAMESPACE::get(*this, i); }};

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区导航在线播放| 午夜精品福利在线| 不卡一卡二卡三乱码免费网站| 久久久夜色精品亚洲| 国产麻豆精品一区二区| 精品久久久久99| 国产 日韩 欧美大片| 国产精品青草综合久久久久99| 成人avav在线| 一区二区三区**美女毛片| 欧美日韩国产不卡| 美女网站色91| 欧美国产在线观看| 色欲综合视频天天天| 午夜影院久久久| 欧美xxxxxxxx| av不卡在线播放| 亚洲大片精品永久免费| 91精品国产一区二区| 国产又黄又大久久| 亚洲色欲色欲www| 欧美日本视频在线| 狠狠色狠狠色综合| 亚洲黄色录像片| 欧美tickling网站挠脚心| 处破女av一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 欧美电影一区二区| 国产成a人亚洲精| 亚洲亚洲精品在线观看| 久久婷婷国产综合国色天香| 91婷婷韩国欧美一区二区| 青青国产91久久久久久 | 色一区在线观看| 日本中文字幕一区二区视频| 亚洲国产精华液网站w| 日本大香伊一区二区三区| 激情成人午夜视频| 亚洲综合区在线| 久久久一区二区三区捆绑**| 欧美性色欧美a在线播放| 国产一区二区伦理| 亚洲成人在线免费| 国产精品久久久久一区| 欧美一区二区美女| 色香蕉成人二区免费| 国产乱理伦片在线观看夜一区| 亚洲最大成人网4388xx| 国产日韩欧美亚洲| 日韩精品中文字幕在线一区| 一本大道久久a久久精品综合| 国产一区二区三区四区在线观看| 一区二区三国产精华液| 亚洲国产精品黑人久久久| 91精品国产手机| 欧美手机在线视频| 91免费看片在线观看| 国产成人亚洲综合a∨婷婷图片| 三级亚洲高清视频| 一区二区三区精密机械公司| 国产精品美女久久久久久久久久久| 欧美一区二区三区在线观看视频| 色综合一个色综合| 成人黄色综合网站| 国产剧情av麻豆香蕉精品| 日本在线不卡视频| 偷拍日韩校园综合在线| 一区二区欧美在线观看| 亚洲欧洲99久久| 国产日韩一级二级三级| www久久久久| 日韩精品一区二区三区在线观看| 欧美日韩一区三区| 精品视频999| 欧美探花视频资源| 欧美精品在线一区二区| 欧美美女视频在线观看| 在线视频你懂得一区二区三区| 成人禁用看黄a在线| 岛国av在线一区| av午夜一区麻豆| 97精品电影院| 在线观看日韩一区| 欧美日韩一级黄| 在线播放中文字幕一区| 91精品国产一区二区三区香蕉 | 一区二区三区四区蜜桃| 亚洲欧美区自拍先锋| 亚洲黄色片在线观看| 亚洲第一福利一区| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久狠狠亚洲综合| 国产美女一区二区三区| 成人性生交大片免费看中文网站| 成人黄色一级视频| 色av一区二区| 欧美久久高跟鞋激| 欧美电影免费观看高清完整版在| 精品国产免费人成电影在线观看四季 | 日本欧美久久久久免费播放网| 免费成人结看片| 成熟亚洲日本毛茸茸凸凹| 日本韩国欧美三级| 欧美另类变人与禽xxxxx| 日韩欧美中文一区二区| 久久久国产综合精品女国产盗摄| 国产精品国产三级国产专播品爱网| 亚洲欧洲日韩av| 午夜精品在线视频一区| 国产一区二区三区久久悠悠色av | 国产精品久久久久影院| 亚洲国产乱码最新视频| 精品亚洲porn| 成人av网站在线观看| 欧美体内she精高潮| 26uuu久久综合| 亚洲欧美经典视频| 秋霞国产午夜精品免费视频| 粉嫩久久99精品久久久久久夜| 欧美性色欧美a在线播放| 26uuu精品一区二区| 一区二区三区.www| 国产高清精品网站| 欧美日韩国产精品成人| 国产精品无圣光一区二区| 午夜精品久久久久久久蜜桃app| 精品系列免费在线观看| 日本高清视频一区二区| 久久久久久99久久久精品网站| 亚洲乱码国产乱码精品精可以看 | 在线观看91精品国产入口| 亚洲精品在线一区二区| 一区二区三区免费| 成人免费毛片高清视频| 日韩女优av电影在线观看| 伊人一区二区三区| 国产乱码精品一区二区三区av| 欧美在线一二三四区| 国产精品美女久久久久久久| 久久精品国产精品青草| 91国偷自产一区二区开放时间| 久久婷婷色综合| 偷拍一区二区三区| 欧美中文字幕一区二区三区亚洲| 欧美激情在线一区二区三区| 美国十次了思思久久精品导航| 在线国产亚洲欧美| 亚洲少妇屁股交4| 成人精品gif动图一区| 久久亚洲二区三区| 日本不卡视频一二三区| 欧美日韩视频不卡| 亚洲女厕所小便bbb| kk眼镜猥琐国模调教系列一区二区| 亚洲精品在线免费观看视频| 石原莉奈在线亚洲三区| 欧美人动与zoxxxx乱| 亚洲激情五月婷婷| 色系网站成人免费| 国产精品不卡一区| 国产成人精品免费看| 国产性天天综合网| 国产一区二区导航在线播放| 精品国产免费一区二区三区香蕉| 蜜臀va亚洲va欧美va天堂| 337p亚洲精品色噜噜| 视频一区二区三区在线| 欧美精品久久99久久在免费线 | 国产精品久久久久久久久免费桃花| 国产在线播放一区二区三区| 欧美成人激情免费网| 美腿丝袜亚洲三区| 日韩欧美在线网站| 九九九久久久精品| 欧美精品一区二区久久婷婷| 精品一区二区三区蜜桃| 久久综合久色欧美综合狠狠| 韩国在线一区二区| 久久老女人爱爱| 国产馆精品极品| 国产精品美女一区二区| 91丨porny丨在线| 一区二区欧美视频| 91精品国产黑色紧身裤美女| 秋霞成人午夜伦在线观看| 精品国产三级a在线观看| 国产高清精品久久久久| 综合欧美亚洲日本| 欧美综合欧美视频| 免费三级欧美电影| 国产亚洲成aⅴ人片在线观看| 成人精品一区二区三区中文字幕| 国产精品久久久久久久第一福利| 99久久精品情趣| 三级一区在线视频先锋 | 欧美一区二区精品久久911| 国产原创一区二区三区| 综合久久久久久久| 在线成人高清不卡| 国产不卡视频一区|