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

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

?? tinystr.h

?? 一個小巧、好用的xml文檔 解析器
?? 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一区二区三区免费野_久草精品视频
国产福利91精品一区| 久久aⅴ国产欧美74aaa| 久久久亚洲欧洲日产国码αv| 精品视频999| 欧美丝袜丝交足nylons| 欧洲中文字幕精品| 91福利在线看| 色天使色偷偷av一区二区| 色婷婷精品久久二区二区蜜臀av| 色综合天天综合网天天看片| 色综合久久久久综合体| 91黄色免费看| 欧美日产在线观看| 日韩一级欧美一级| 亚洲天天做日日做天天谢日日欢| 久久综合久久综合亚洲| 国产亚洲精品福利| 国产精品久久久久久久午夜片| 国产精品久线在线观看| 亚洲美女一区二区三区| 午夜电影网一区| 麻豆极品一区二区三区| 国产成人精品亚洲午夜麻豆| 成人激情开心网| 在线观看视频一区| 欧美一区二区播放| 久久久99精品免费观看不卡| 国产精品国产三级国产三级人妇| 亚洲女厕所小便bbb| 日韩av不卡一区二区| 国产成人欧美日韩在线电影| 99国产精品久久久久久久久久| 色欧美片视频在线观看在线视频| 欧美伦理影视网| 国产欧美日韩中文久久| 一区二区三区日韩精品| 久久激情五月婷婷| 色综合久久久久久久久久久| 日韩午夜激情电影| 亚洲精品一二三| 久久av资源站| 欧美亚洲丝袜传媒另类| 久久这里只有精品视频网| 亚洲精品v日韩精品| 久久99国产精品尤物| 日本韩国精品在线| 国产日韩欧美精品在线| 日韩高清欧美激情| 色呦呦国产精品| 久久伊99综合婷婷久久伊| 亚洲综合色网站| 成人黄页在线观看| 日韩欧美一区二区三区在线| 一区二区三区在线视频播放| 国产精一区二区三区| 欧美性猛交xxxxxx富婆| 国产精品不卡一区二区三区| 麻豆国产精品一区二区三区| 欧美在线观看视频在线| 中文字幕中文乱码欧美一区二区| 麻豆91在线播放| 欧美日韩免费在线视频| 亚洲欧美日本韩国| 99这里只有久久精品视频| 久久伊99综合婷婷久久伊| 日韩成人免费电影| 欧美日韩一级视频| 亚洲精品网站在线观看| 欧美精品vⅰdeose4hd| 亚洲欧美日韩国产一区二区三区| 懂色av一区二区夜夜嗨| 久久亚洲影视婷婷| 国内精品久久久久影院色| 日韩欧美一卡二卡| 免费视频最近日韩| 日韩午夜中文字幕| 蜜臀av性久久久久蜜臀av麻豆| 666欧美在线视频| 男男视频亚洲欧美| 日韩欧美123| 精品亚洲porn| 国产网红主播福利一区二区| 国产一区二区三区电影在线观看| 日韩一级二级三级精品视频| 麻豆成人免费电影| 久久久不卡影院| 国产精品乡下勾搭老头1| 中文字幕第一区综合| 99re在线视频这里只有精品| 亚洲视频一区在线观看| 日本二三区不卡| 偷拍与自拍一区| 欧美成人伊人久久综合网| 国产精品一区二区三区99| 欧美国产精品v| 91免费观看国产| 日韩精品欧美精品| 久久久.com| 91在线视频官网| 日本不卡一二三| 久久精品亚洲一区二区三区浴池| 成人午夜免费电影| 一区二区三区精品在线| 91精品欧美综合在线观看最新| 久热成人在线视频| 国产精品久久久久四虎| 欧美视频完全免费看| 激情久久久久久久久久久久久久久久| 国产亚洲午夜高清国产拍精品| av不卡免费在线观看| 亚洲第一综合色| 国产拍揄自揄精品视频麻豆| 在线免费观看日韩欧美| 美女视频第一区二区三区免费观看网站| 欧美大片一区二区三区| 色综合中文字幕| 国内精品国产三级国产a久久| 亚洲欧美经典视频| 日韩欧美激情四射| 色94色欧美sute亚洲线路一久| 免费日韩伦理电影| 亚洲欧美另类图片小说| 久久久午夜电影| 欧美精品免费视频| 99国产精品久| av在线不卡免费看| 日韩中文字幕av电影| **性色生活片久久毛片| 亚洲精品在线免费观看视频| 欧美中文字幕一区二区三区亚洲| 成人综合婷婷国产精品久久蜜臀| 日韩精品电影一区亚洲| 亚洲视频一二区| 国产亚洲va综合人人澡精品| 91精品国产91久久综合桃花| 97国产一区二区| 成人免费看视频| 国产一区在线观看视频| 亚洲成av人片一区二区| 一区二区三区免费网站| 亚洲欧洲精品一区二区精品久久久| 日韩限制级电影在线观看| 欧美区在线观看| 日本高清免费不卡视频| 91啪亚洲精品| av一区二区三区| 成人精品视频网站| 国产精品2024| 国产99一区视频免费| 国产综合一区二区| 国产综合色在线视频区| 久久精品国产精品亚洲综合| 蜜桃av一区二区三区电影| 亚洲sss视频在线视频| 午夜视频一区在线观看| 天天影视色香欲综合网老头| 三级一区在线视频先锋| 亚洲一二三专区| 亚洲成人综合在线| 亚洲第一成人在线| 石原莉奈一区二区三区在线观看| 亚洲成av人**亚洲成av**| 日韩黄色一级片| 久久精品国内一区二区三区| 久久99国内精品| 国产在线精品免费| 丁香啪啪综合成人亚洲小说 | 国产精品久久久久久久第一福利 | 偷拍日韩校园综合在线| 亚洲一区二区在线播放相泽| 亚洲第一狼人社区| 蜜臀精品久久久久久蜜臀| 国产一区二区精品久久| 国产99精品国产| 在线亚洲一区观看| 91精品国产入口在线| 久久九九国产精品| 亚洲九九爱视频| 日本欧美一区二区三区乱码| 国产一区二区调教| 一本一本大道香蕉久在线精品 | 欧美高清激情brazzers| 欧美tk丨vk视频| 自拍偷拍国产精品| 国产91露脸合集magnet| 99久久久无码国产精品| 欧美日韩精品专区| 久久午夜国产精品| 亚洲猫色日本管| 久久er99热精品一区二区| 91片在线免费观看| 日韩一区二区三区视频在线| 国产精品天干天干在线综合| 一二三四社区欧美黄| 韩国一区二区视频| 韩国成人福利片在线播放| 久久99精品久久久久久| 国产精品一区在线观看乱码 | 国产精品麻豆视频| 日韩精品一级二级 |