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

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

?? tinystr.h

?? 一個游戲源碼,初學者可以用來學習
?? H
字號:
/*www.sourceforge.net/projects/tinyxmlOriginal file by Yves Berquin.This software is provided 'as-is', without any express or impliedwarranty. In no event will the authors be held liable for anydamages arising from the use of this software.Permission is granted to anyone to use this software for anypurpose, including commercial applications, and to alter it andredistribute it freely, subject to the following restrictions:1. The origin of this software must not be misrepresented; you mustnot claim that you wrote the original software. If you use thissoftware in a product, an acknowledgment in the product documentationwould be appreciated but is not required.2. Altered source versions must be plainly marked as such, andmust not be misrepresented as being the original software.3. This notice may not be removed or altered from any sourcedistribution.*//* * THIS FILE WAS ALTERED BY Tyge Lovset, 7. April 2005. * * - completely rewritten. compact, clean, and fast implementation. * - sizeof(TiXmlString) = pointer size (4 bytes on 32-bit systems) * - fixed reserve() to work as per specification. * - fixed buggy compares operator==(), operator<(), and operator>() * - fixed operator+=() to take a const ref argument, following spec. * - added "copy" constructor with length, and most compare operators. * - added swap(), clear(), size(), capacity(), operator+(). */#ifndef TIXML_USE_STL#ifndef TIXML_STRING_INCLUDED#define TIXML_STRING_INCLUDED#include <assert.h>#include <string.h>/*	The support for explicit isn't that universal, and it isn't really	required - it is used to check that the TiXmlString class isn't incorrectly	used. Be nice to old compilers and macro it here:*/#if defined(_MSC_VER) && (_MSC_VER >= 1200 )	// Microsoft visual studio, version 6 and higher.	#define TIXML_EXPLICIT explicit#elif defined(__GNUC__) && (__GNUC__ >= 3 )	// GCC version 3 and higher.s	#define TIXML_EXPLICIT explicit#else	#define TIXML_EXPLICIT#endif/*   TiXmlString is an emulation of a subset of the std::string template.   Its purpose is to allow compiling TinyXML on compilers with no or poor STL support.   Only the member functions relevant to the TinyXML project have been implemented.   The buffer allocation is made by a simplistic power of 2 like mechanism : if we increase   a string and there's no more room, we allocate a buffer twice as big as we need.*/class TiXmlString{  public :	// The size type used  	typedef size_t size_type;	// Error value for find primitive	static const size_type npos; // = -1;	// TiXmlString empty constructor	TiXmlString () : rep_(&nullrep_)	{	}	// TiXmlString copy constructor	TiXmlString ( const TiXmlString & copy) : rep_(0)	{		init(copy.length());		memcpy(start(), copy.data(), length());	}	// TiXmlString constructor, based on a string	TIXML_EXPLICIT TiXmlString ( const char * copy) : rep_(0)	{		init( static_cast<size_type>( strlen(copy) ));		memcpy(start(), copy, length());	}	// TiXmlString constructor, based on a string	TIXML_EXPLICIT TiXmlString ( const char * str, size_type len) : rep_(0)	{		init(len);		memcpy(start(), str, len);	}	// TiXmlString destructor	~TiXmlString ()	{		quit();	}	// = operator	TiXmlString& operator = (const char * copy)	{		return assign( copy, (size_type)strlen(copy));	}	// = operator	TiXmlString& operator = (const TiXmlString & copy)	{		return assign(copy.start(), copy.length());	}	// += operator. Maps to append	TiXmlString& operator += (const char * suffix)	{		return append(suffix, static_cast<size_type>( strlen(suffix) ));	}	// += operator. Maps to append	TiXmlString& operator += (char single)	{		return append(&single, 1);	}	// += operator. Maps to append	TiXmlString& operator += (const TiXmlString & suffix)	{		return append(suffix.data(), suffix.length());	}	// Convert a TiXmlString into a null-terminated char *	const char * c_str () const { return rep_->str; }	// Convert a TiXmlString into a char * (need not be null terminated).	const char * data () const { return rep_->str; }	// Return the length of a TiXmlString	size_type length () const { return rep_->size; }	// Alias for length()	size_type size () const { return rep_->size; }	// Checks if a TiXmlString is empty	bool empty () const { return rep_->size == 0; }	// Return capacity of string	size_type capacity () const { return rep_->capacity; }	// single char extraction	const char& at (size_type index) const	{		assert( index < length() );		return rep_->str[ index ];	}	// [] operator	char& operator [] (size_type index) const	{		assert( index < length() );		return rep_->str[ index ];	}	// find a char in a string. Return TiXmlString::npos if not found	size_type find (char lookup) const	{		return find(lookup, 0);	}	// find a char in a string from an offset. Return TiXmlString::npos if not found	size_type find (char tofind, size_type offset) const	{		if (offset >= length()) return npos;		for (const char* p = c_str() + offset; *p != '\0'; ++p)		{		   if (*p == tofind) return static_cast< size_type >( p - c_str() );		}		return npos;	}	void clear ()	{		//Lee:		//The original was just too strange, though correct:		//	TiXmlString().swap(*this);		//Instead use the quit & re-init:		quit();		init(0,0);	}	/*	Function to reserve a big amount of data when we know we'll need it. Be aware that this		function DOES NOT clear the content of the TiXmlString if any exists.	*/	void reserve (size_type cap);	TiXmlString& assign (const char* str, size_type len);	TiXmlString& append (const char* str, size_type len);	void swap (TiXmlString& other)	{		Rep* r = rep_;		rep_ = other.rep_;		other.rep_ = r;	}  private:	void init(size_type sz) { init(sz, sz); }	void set_size(size_type sz) { rep_->str[ rep_->size = sz ] = '\0'; }	char* start() const { return rep_->str; }	char* finish() const { return rep_->str + rep_->size; }	struct Rep	{		size_type size, capacity;		char str[1];	};	void init(size_type sz, size_type cap)	{		if (cap)		{			// Lee: the original form:			//	rep_ = static_cast<Rep*>(operator new(sizeof(Rep) + cap));			// doesn't work in some cases of new being overloaded. Switching			// to the normal allocation, although use an 'int' for systems			// that are overly picky about structure alignment.			const size_type bytesNeeded = sizeof(Rep) + cap;			const size_type intsNeeded = ( bytesNeeded + sizeof(int) - 1 ) / sizeof( int ); 			rep_ = reinterpret_cast<Rep*>( new int[ intsNeeded ] );			rep_->str[ rep_->size = sz ] = '\0';			rep_->capacity = cap;		}		else		{			rep_ = &nullrep_;		}	}	void quit()	{		if (rep_ != &nullrep_)		{			// The rep_ is really an array of ints. (see the allocator, above).			// Cast it back before delete, so the compiler won't incorrectly call destructors.			delete [] ( reinterpret_cast<int*>( rep_ ) );		}	}	Rep * rep_;	static Rep nullrep_;} ;inline bool operator == (const TiXmlString & a, const TiXmlString & b){	return    ( a.length() == b.length() )				// optimization on some platforms	       && ( strcmp(a.c_str(), b.c_str()) == 0 );	// actual compare}inline bool operator < (const TiXmlString & a, const TiXmlString & b){	return strcmp(a.c_str(), b.c_str()) < 0;}inline bool operator != (const TiXmlString & a, const TiXmlString & b) { return !(a == b); }inline bool operator >  (const TiXmlString & a, const TiXmlString & b) { return b < a; }inline bool operator <= (const TiXmlString & a, const TiXmlString & b) { return !(b < a); }inline bool operator >= (const TiXmlString & a, const TiXmlString & b) { return !(a < b); }inline bool operator == (const TiXmlString & a, const char* b) { return strcmp(a.c_str(), b) == 0; }inline bool operator == (const char* a, const TiXmlString & b) { return b == a; }inline bool operator != (const TiXmlString & a, const char* b) { return !(a == b); }inline bool operator != (const char* a, const TiXmlString & b) { return !(b == a); }TiXmlString operator + (const TiXmlString & a, const TiXmlString & b);TiXmlString operator + (const TiXmlString & a, const char* b);TiXmlString operator + (const char* a, const TiXmlString & b);/*   TiXmlOutStream is an emulation of std::ostream. It is based on TiXmlString.   Only the operators that we need for TinyXML have been developped.*/class TiXmlOutStream : public TiXmlString{public :	// TiXmlOutStream << operator.	TiXmlOutStream & operator << (const TiXmlString & in)	{		*this += in;		return *this;	}	// TiXmlOutStream << operator.	TiXmlOutStream & operator << (const char * in)	{		*this += in;		return *this;	}} ;#endif	// TIXML_STRING_INCLUDED#endif	// TIXML_USE_STL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品影音先锋| 亚洲国产wwwccc36天堂| 国产美女娇喘av呻吟久久| 精品免费99久久| 激情成人午夜视频| 国产精品亲子伦对白| 色一情一伦一子一伦一区| 亚洲精品国产无天堂网2021| 欧美亚日韩国产aⅴ精品中极品| 亚洲二区视频在线| 日韩一卡二卡三卡四卡| 国产一区二区免费在线| 国产精品成人网| 欧美性色欧美a在线播放| 免费观看30秒视频久久| 国产三区在线成人av| 色婷婷综合五月| 日本va欧美va瓶| 国产精品妹子av| 欧美日韩精品免费观看视频| 国产一区中文字幕| **网站欧美大片在线观看| 欧美三级电影在线看| 国产乱淫av一区二区三区| 综合久久一区二区三区| 日韩欧美在线一区二区三区| proumb性欧美在线观看| 六月丁香综合在线视频| 亚洲日本一区二区三区| 欧美一区二区三区男人的天堂| 成人一级黄色片| 亚欧色一区w666天堂| 国产日韩欧美精品综合| 欧美日韩精品二区第二页| 成人av网站免费观看| 奇米一区二区三区| 亚洲蜜臀av乱码久久精品| 欧美mv和日韩mv国产网站| 色综合久久久久综合| 国产一区二区剧情av在线| 亚洲国产综合人成综合网站| 国产蜜臀av在线一区二区三区| 欧美日本不卡视频| 91色porny在线视频| 国产精品69毛片高清亚洲| 日韩精品电影在线| 亚洲精品免费电影| 亚洲国产精品ⅴa在线观看| 日韩精品一区二区三区蜜臀| 欧美中文字幕久久| 99riav一区二区三区| 国产成人精品影视| 黄色资源网久久资源365| 日韩电影一二三区| 天天影视涩香欲综合网| 玉米视频成人免费看| 国产欧美视频一区二区| 久久一日本道色综合| 精品久久人人做人人爽| 777午夜精品视频在线播放| 在线观看国产精品网站| 99精品桃花视频在线观看| 国产不卡视频在线观看| 国产九色sp调教91| 国产精品综合一区二区三区| 美女高潮久久久| 韩国视频一区二区| 国产麻豆视频一区二区| 国产一区二三区| 国内外成人在线视频| 久久99国产精品麻豆| 蜜桃视频在线观看一区| 久久精品国产免费看久久精品| 日本成人在线电影网| 免费欧美在线视频| 久久国产精品露脸对白| 免费看精品久久片| 久久99深爱久久99精品| 国产一区二区三区黄视频| 国产精品 欧美精品| 国产剧情一区二区| www.日韩精品| 日本久久电影网| 在线不卡的av| 日韩亚洲欧美在线| 久久久久久影视| 国产精品久久久久久久久晋中| 中文字幕亚洲精品在线观看| 一区二区三区欧美日| 视频一区在线播放| 精品一区二区三区av| 国产麻豆9l精品三级站| k8久久久一区二区三区| 欧美午夜精品久久久久久超碰| 91精品国产综合久久久蜜臀图片| 欧美v日韩v国产v| 欧美激情一区在线| 一区二区三区免费| 久久精品国产澳门| 丁香五精品蜜臀久久久久99网站 | 日韩亚洲欧美高清| 精品国产露脸精彩对白| 久久久91精品国产一区二区精品| 国产精品久久久久一区二区三区 | 蜜臀av一级做a爰片久久| 久久成人18免费观看| www.在线成人| 欧美另类高清zo欧美| 国产日韩欧美a| 一区二区三区高清不卡| 精品一二三四区| 91色视频在线| 精品少妇一区二区三区日产乱码| 中文字幕一区二区三区色视频 | 麻豆极品一区二区三区| 成人精品高清在线| 欧美高清视频在线高清观看mv色露露十八| 26uuu欧美| 亚洲va中文字幕| 成人h动漫精品一区二区| 91精品欧美一区二区三区综合在| 国产精品丝袜在线| 日韩1区2区3区| 99国产精品久| 久久久天堂av| 三级一区在线视频先锋| av在线免费不卡| 久久久亚洲午夜电影| 亚洲国产一区二区三区青草影视| 国产成人av电影在线观看| 欧美一区二区视频在线观看| 亚洲欧美日韩一区| 国产精品一区二区三区网站| 欧美精品久久久久久久多人混战 | 9i看片成人免费高清| 欧美xxxx在线观看| 亚洲天堂av一区| 国产不卡在线视频| 久久中文娱乐网| 日本美女一区二区三区视频| 在线看国产日韩| 中文字幕色av一区二区三区| 国产乱理伦片在线观看夜一区| 制服.丝袜.亚洲.另类.中文| 亚洲激情第一区| 色综合天天狠狠| 国产精品全国免费观看高清 | 国产v综合v亚洲欧| 欧美电视剧免费观看| 免费人成网站在线观看欧美高清| 欧美日韩一区二区三区免费看| 亚洲欧洲无码一区二区三区| 成人一区二区三区| 欧美激情在线一区二区三区| 国产一区二区在线影院| 精品福利视频一区二区三区| 美国毛片一区二区三区| 日韩午夜激情av| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美高清性hdvideosex| 偷拍日韩校园综合在线| 欧美日韩综合不卡| 婷婷中文字幕一区三区| 欧美亚洲日本国产| 午夜精品国产更新| 欧美人xxxx| 久热成人在线视频| 精品精品国产高清一毛片一天堂| 免费国产亚洲视频| www国产成人| 国产成人免费在线视频| 中文字幕精品三区| 91在线看国产| 亚洲一区二区在线免费看| 欧美日韩免费不卡视频一区二区三区| 一区av在线播放| 91精品国产综合久久小美女| 青青草国产成人av片免费| 久久综合久色欧美综合狠狠| 国产激情一区二区三区| 中文字幕在线观看不卡| 欧美专区日韩专区| 麻豆国产精品一区二区三区| 久久久午夜精品理论片中文字幕| 国产99久久久久| 亚洲乱码国产乱码精品精小说| 欧美视频一区在线观看| 免费成人在线视频观看| 久久久久久日产精品| 91碰在线视频| 日本午夜一本久久久综合| 久久日韩粉嫩一区二区三区| 波多野结衣精品在线| 无码av免费一区二区三区试看| 欧美变态tickle挠乳网站| 99久久99久久精品国产片果冻| 日韩专区一卡二卡| 国产精品麻豆一区二区 | 日韩精品一区二区三区视频播放| 国产精品亚洲第一区在线暖暖韩国 |