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

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

?? ptypes.h

?? PTypes (C++ Portable Types Library) is a simple alternative to the STL that includes multithreading
?? H
?? 第 1 頁 / 共 3 頁
字號:
/* * *  C++ Portable Types Library (PTypes) *  Version 1.7.5   Released 9-Mar-2003 * *  Copyright (c) 2001, 2002, 2003 Hovik Melikyan * *  http://www.melikyan.com/ptypes/ *  http://ptypes.sourceforge.net/ * */#ifndef __PTYPES_H__#define __PTYPES_H__#ifndef _INC_STRING#include <string.h>#endif#ifndef __PPORT_H__#include "pport.h"#endifPTYPES_BEGIN#ifdef _MSC_VER#pragma pack(push, 4)#endif// -------------------------------------------------------------------- //// ---  string class -------------------------------------------------- //// -------------------------------------------------------------------- //struct _strrec {    int refcount;    int length;};typedef _strrec* _pstrrec;#define STR_BASE(x)      (_pstrrec(x)-1)#define STR_REFCOUNT(x)  (STR_BASE(x)->refcount)#define STR_LENGTH(x)    (STR_BASE(x)->length)#define PTR_TO_PSTRING(p)   (pstring(&(p)))#define PTR_TO_STRING(p)    (*PTR_TO_PSTRING(p))const int strrecsize = sizeof(_strrec);ptpublic extern char* emptystr;ptpublic extern int stralloc;class ptpublic string {protected:    char* data;        void _alloc(int);    void _realloc(int);    void _free();        void initialize()                             { data = emptystr; }    void initialize(const char*, int);    void initialize(const char*);    void initialize(char);    void initialize(const string& s);    void initialize(const char*, int, const char*, int);    void finalize();        void assign(const char*, int);    void assign(const char*);    void assign(const string&);    void assign(char);        string(const char* s1, int len1, const char* s2, int len2)  { initialize(s1, len1, s2, len2); }    public:    friend inline int  length(const string& s)    { return STR_LENGTH(s.data); }    friend inline int  refcount(const string& s)  { return STR_REFCOUNT(s.data); }    friend inline void assign(string& s,         const char* buf, int len)                 { s.assign(buf, len); }    friend inline void clear(string& s)           { s.finalize(); }    friend inline bool isempty(const string& s)   { return length(s) == 0; }        ptpublic friend void   setlength(string&, int);    ptpublic friend char*  unique(string&);    ptpublic friend void   concat(string& s, const char* sc, int catlen);    ptpublic friend void   concat(string& s, const char* s1);    ptpublic friend void   concat(string& s, char s1);    ptpublic friend void   concat(string& s, const string& s1);    ptpublic friend string copy(const string& s, int from, int cnt);    ptpublic friend void   ins(const char* s1, int s1len, string& s, int at);    ptpublic friend void   ins(const char* s1, string& s, int at);    ptpublic friend void   ins(char s1, string& s, int at);    ptpublic friend void   ins(const string& s1, string& s, int at);    ptpublic friend void   del(string& s, int at, int cnt);    ptpublic friend int    pos(const char* s1, const string& s);    ptpublic friend int    pos(char s1, const string& s);    ptpublic friend int    rpos(char s1, const string& s);    ptpublic friend bool   contains(const char* s1, int len, const string& s, int at);    ptpublic friend bool   contains(const char* s1, const string& s, int at);    ptpublic friend bool   contains(char s1, const string& s, int at);    ptpublic friend bool   contains(const string& s1, const string& s, int at);    friend inline int pos(const string& s1,         const string& s)                          { return pos(s1.data, s); }    ptpublic friend string dup(const string& s);        string()                                      { initialize(); }    string(const char* sc, int initlen)           { initialize(sc, initlen); }    string(const char* sc)                        { initialize(sc); }    string(char c)                                { initialize(c); }    string(const string& s)                       { initialize(s); }    ~string()                                     { finalize(); }        string& operator=  (const char* sc)           { assign(sc); return *this; }    string& operator=  (char c)                   { assign(c); return *this; }    string& operator=  (const string& s)          { assign(s); return *this; }    string& operator+= (const char* sc)           { concat(*this, sc); return *this; }    string& operator+= (char c)                   { concat(*this, c); return *this; }    string& operator+= (const string& s)          { concat(*this, s); return *this; }        string  operator+  (const char* sc) const;    string  operator+  (char c) const;    string  operator+  (const string& s) const;        ptpublic friend string operator+ (const char* sc, const string& s);    ptpublic friend string operator+ (char c, const string& s);        bool    operator== (const char* sc) const     { return strcmp(data, sc) == 0; }    bool    operator== (char) const;    bool    operator== (const string&) const;    bool    operator!= (const char* sc) const     { return !(*this == sc); }    bool    operator!= (char c) const             { return !(*this == c); }    bool    operator!= (const string& s) const    { return !(*this == s); }    operator const char*() const                  { return data; }    operator const uchar*() const                 { return (uchar*)data; }    #ifdef CHECK_BOUNDS    char&   operator[] (int i);#else    char&   operator[] (int i)                    { return unique(*this)[i]; }#endif        friend inline void initialize(string& s)      { s.initialize(); }    friend inline void initialize(string& s,         const string& s1)                         { s.initialize(s1); }    friend inline void initialize(string& s,         const char* s1)                           { s.initialize(s1); }    friend inline void finalize(string& s)        { s.finalize(); }};typedef string* pstring;ptpublic extern string nullstring;// -------------------------------------------------------------------- //// ---  string utilities ---------------------------------------------- //// -------------------------------------------------------------------- //ptpublic string fill(int width, char pad);ptpublic string pad(const string& s, int width, char c, bool left = true);ptpublic string itobase(large value, int base, int width = 0, char pad = 0);ptpublic string itostring(int v);ptpublic string itostring(large v);ptpublic large  stringtoi(const char*);ptpublic string lowercase(const char* s);ptpublic string lowercase(const string& s);char hex4(char c);inline char locase(char c)     { if (c >= 'A' && c <= 'Z') return char(c + 32); return c; }inline char upcase(char c)     { if (c >= 'a' && c <= 'z') return char(c - 32); return c; }inline int hstrlen(const char* p) // some Unix systems do not accept NULL    { return p == nil ? 0 : strlen(p); }// -------------------------------------------------------------------- //// ---  character set class ------------------------------------------- //// -------------------------------------------------------------------- //const int  _csetbits = 256;const int  _csetbytes = _csetbits / 8;const int  _csetwords = _csetbytes / sizeof(int);const char _csetesc = '~';class ptpublic cset {protected:    char data[_csetbytes];    void assign(const cset& s)                  { memcpy(data, s.data, _csetbytes); }    void assign(const char* setinit);    void clear()                                { memset(data, 0, _csetbytes); }    void fill()                                 { memset(data, -1, _csetbytes); }    void include(char b)                        { data[uchar(b) / 8] |= uchar(1 << (uchar(b) % 8)); }    void include(char min, char max);    void exclude(char b)                        { data[uchar(b) / 8] &= uchar(~(1 << (uchar(b) % 8))); }    void unite(const cset& s);    void subtract(const cset& s);    void intersect(const cset& s);    void invert();    bool contains(char b) const                 { return (data[uchar(b) / 8] & (1 << (uchar(b) % 8))) != 0; }    bool eq(const cset& s) const                { return memcmp(data, s.data, _csetbytes) == 0; }    bool le(const cset& s) const;public:    cset()                                      { clear(); }    cset(const cset& s)                         { assign(s); }    cset(const char* setinit)                   { assign(setinit); }    cset& operator=  (const cset& s)            { assign(s); return *this; }    cset& operator+= (const cset& s)            { unite(s); return *this; }    cset& operator+= (char b)                   { include(b); return *this; }    cset  operator+  (const cset& s) const      { cset t = *this; return t += s; }    cset  operator+  (char b) const             { cset t = *this; return t += b; }    cset& operator-= (const cset& s)            { subtract(s); return *this; }    cset& operator-= (char b)                   { exclude(b); return *this; }    cset  operator-  (const cset& s) const      { cset t = *this; return t -= s; }    cset  operator-  (char b) const             { cset t = *this; return t -= b; }    cset& operator*= (const cset& s)            { intersect(s); return *this; }    cset  operator*  (const cset& s) const      { cset t = *this; return t *= s; }    cset  operator!  () const                   { cset t = *this; t.invert(); return t; }    bool  operator== (const cset& s) const      { return eq(s); }    bool  operator!= (const cset& s) const      { return !eq(s); }    bool  operator<= (const cset& s) const      { return le(s); }    bool  operator>= (const cset& s) const      { return s.le(*this); }    friend inline cset operator+ (char b,         const cset& s)                          { return s + b; }    friend inline bool operator& (char b,         const cset& s)                          { return s.contains(b); }    friend inline void assign(cset& s,         const char* setinit)                    { s.assign(setinit); }    friend inline void clear(cset& s)           { s.clear(); }    friend inline void fill(cset& s)            { s.fill(); }    friend inline void include(cset& s, char b) { s.include(b); }    friend inline void exclude(cset& s, char b) { s.exclude(b); }    friend inline void include(cset& s,         char min, char max)                     { s.include(min, max); }    ptpublic friend string asstring(const cset& s);};// -------------------------------------------------------------------- //// ---  basic abstract class ------------------------------------------ //// -------------------------------------------------------------------- //class ptpublic unknown {public:    unknown();    virtual ~unknown();};typedef unknown* punknown;ptpublic extern int objalloc;// -------------------------------------------------------------------- //// ---  component ----------------------------------------------------- //// -------------------------------------------------------------------- //PTYPES_ENDnamespace ox            // our friends in the Objection framework{    class ox_class;    class ox_machine;}PTYPES_BEGINclass objlist;//// class ID's for all basic types: the first byte (least significant)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品夜色噜噜亚洲aⅴ| 亚洲成a人片在线观看中文| 亚洲精品免费看| 蜜臀99久久精品久久久久久软件| 国产**成人网毛片九色| 欧美理论片在线| 18涩涩午夜精品.www| 激情综合色播激情啊| 欧美老肥妇做.爰bbww视频| 国产精品午夜在线观看| 麻豆精品新av中文字幕| 99精品国产99久久久久久白柏| 日韩一卡二卡三卡国产欧美| 一级做a爱片久久| av成人老司机| 国产精品天天摸av网| 国产一区二区视频在线| 欧美一级二级在线观看| 午夜精品久久久久| 欧美写真视频网站| 亚洲国产三级在线| 欧美视频完全免费看| 一区二区三区四区蜜桃| 97精品国产露脸对白| 国产精品久久久久久久久晋中| 国产精品中文字幕日韩精品| 欧美精品一区二区三区很污很色的| 五月婷婷激情综合| 欧美丰满美乳xxx高潮www| 1区2区3区欧美| 91美女福利视频| 夜色激情一区二区| 欧美色成人综合| 性久久久久久久| 日韩一区二区不卡| 国产一区二区伦理| 国产精品久久久久久久久快鸭| 99久久精品99国产精品| 国产精品乱码一区二三区小蝌蚪| 成人avav在线| 亚洲欧美在线观看| 在线视频亚洲一区| 日产精品久久久久久久性色| 日韩一区二区三区在线| 久久国产精品99久久久久久老狼| 欧美精品一区二区三区高清aⅴ| 国产乱人伦偷精品视频免下载| 337p粉嫩大胆噜噜噜噜噜91av| 国产一区二区在线观看视频| 国产精品色哟哟网站| 91精彩视频在线| 麻豆freexxxx性91精品| 国产亚洲污的网站| 在线亚洲精品福利网址导航| 蜜桃av一区二区三区| 久久亚洲精精品中文字幕早川悠里| 高清日韩电视剧大全免费| 亚洲美女电影在线| 欧美xxxxx裸体时装秀| 99久久99久久精品国产片果冻| 亚洲一区二区五区| 欧美精品一区男女天堂| 色哟哟亚洲精品| 精品无码三级在线观看视频| 亚洲视频在线观看三级| 91精品国产综合久久精品麻豆| 国产精品456| 亚瑟在线精品视频| 国产精品全国免费观看高清 | 国产精品一线二线三线| 国产亚洲精品久| 在线观看www91| 国产精品888| 午夜电影一区二区三区| 中文字幕成人av| 91精品国产综合久久精品图片 | 美国十次了思思久久精品导航| 久久久久久久久伊人| 欧美性大战久久久久久久蜜臀| 国产乱码字幕精品高清av| 亚洲超碰精品一区二区| 国产精品三级电影| 欧美一区二区不卡视频| 91成人在线观看喷潮| 国产69精品一区二区亚洲孕妇| 一区二区高清在线| 国产区在线观看成人精品| 制服丝袜国产精品| 日本乱人伦aⅴ精品| 丰满亚洲少妇av| 日本欧美肥老太交大片| 亚洲一区二区三区四区的| 国产视频一区在线播放| 日韩欧美色电影| 欧美日韩一区二区在线观看| 不卡一区二区三区四区| 精品一区二区免费| 欧美性色黄大片| 中文字幕一区二区三区不卡在线| 免费看欧美女人艹b| 欧美日韩电影在线播放| 国产在线视视频有精品| 欧美日韩国产精品成人| 日韩不卡手机在线v区| 久久蜜桃av一区二区天堂| 丝袜国产日韩另类美女| 91麻豆精品国产91久久久更新时间| 日本精品视频一区二区| 国产成人免费网站| 一本久道久久综合中文字幕| 精品国产一区二区三区不卡| 欧美精品久久99| 欧美国产97人人爽人人喊| 亚洲欧美另类图片小说| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品一区二区三区在线视频| 99国产精品99久久久久久| 蜜乳av一区二区三区| 亚洲精品中文字幕在线观看| 亚洲精品一区在线观看| 成人免费黄色大片| 亚洲与欧洲av电影| 日本欧美在线看| 欧美国产精品一区| 国内精品不卡在线| 中国色在线观看另类| 中文字幕高清不卡| 亚洲日韩欧美一区二区在线| 亚洲人成网站在线| 亚洲午夜视频在线| 日本在线不卡视频| 精品一区二区三区的国产在线播放 | 欧美日韩国产一二三| 欧美无砖专区一中文字| 6080亚洲精品一区二区| 欧美刺激午夜性久久久久久久| 精品国产免费人成电影在线观看四季| 精品国产一区二区三区av性色| 国产日韩欧美麻豆| 亚洲免费在线视频| 男人的j进女人的j一区| 国产一区二三区好的| 91官网在线免费观看| 欧美一区二区网站| 中文av一区二区| 日本va欧美va瓶| 成人免费视频播放| 6080yy午夜一二三区久久| 久久久久久亚洲综合| 亚洲精品视频一区二区| 捆绑调教一区二区三区| 成人97人人超碰人人99| 欧美日韩国产综合一区二区三区| 精品蜜桃在线看| 亚洲柠檬福利资源导航| 奇米综合一区二区三区精品视频| 成人美女视频在线看| 91精品欧美福利在线观看| 国产日韩欧美一区二区三区乱码| 亚洲国产一二三| 懂色av噜噜一区二区三区av| 欧美精品vⅰdeose4hd| 国产女人水真多18毛片18精品视频 | 欧美亚洲高清一区| 国产午夜精品一区二区三区四区| 一区二区国产盗摄色噜噜| 国产精品性做久久久久久| 欧美日韩国产高清一区二区| 国产情人综合久久777777| 日韩av中文字幕一区二区三区| 97精品国产露脸对白| 久久久五月婷婷| 香蕉加勒比综合久久| 波多野洁衣一区| 久久久久久夜精品精品免费| 日日摸夜夜添夜夜添精品视频| 懂色av一区二区在线播放| 日韩午夜电影在线观看| 亚洲国产一区二区三区青草影视| 99视频在线精品| 国产亚洲精品福利| 蜜桃精品视频在线| 91精品欧美福利在线观看| 夜夜嗨av一区二区三区四季av| 99国产精品久久久久久久久久久| www成人在线观看| 奇米精品一区二区三区四区| 欧美精品久久99| 亚洲高清免费视频| 欧美亚洲另类激情小说| 亚洲综合在线五月| 在线观看不卡一区| 一区二区三区不卡视频在线观看| 色视频成人在线观看免| 亚洲另类色综合网站| 91蜜桃在线免费视频| 亚洲伦在线观看| 在线观看区一区二| 午夜av区久久| 日韩欧美另类在线|