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

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

?? adapter

?? C語言庫函數(shù)的原型,有用的拿去
??
?? 第 1 頁 / 共 3 頁
字號:
// adapter stl/clr header
#ifndef _CLI_ADAPTER_
 #define _CLI_ADAPTER_
#include <cliext/iterator>
#include <cliext/utility>

namespace cliext {
//
// TEMPLATE CLASS collection_adapter
//
template<typename _Cont_t>
	ref class collection_adapter;

//
// TEMPLATE REF CLASS Enum_iterator
//
template<typename _Cont_t,
	typename _Enum_t,
	typename _Value_t>
	ref class Enum_iterator
	{	// iterator for read-only one-pass container
public:
	// types
	typedef Enum_iterator<_Cont_t, _Enum_t, _Value_t> _Mytype_t;

	typedef input_iterator_tag iterator_category;
	typedef _Value_t value_type;
	typedef int difference_type;
	typedef value_type% pointer;
	typedef value_type% reference;
	typedef value_type% const_reference;

	// basics
	Enum_iterator()
		:	_Mycont(nullptr), _Myenum(nullptr)
		{	// construct default
		}

	Enum_iterator(Enum_iterator% _Right)
		:	_Mycont(_Right._Mycont), _Myenum(_Right._Myenum)
		{	// construct by copying an iterator
		}

	Enum_iterator% operator=(Enum_iterator% _Right)
		{	// assign an iterator
		_Mycont = _Right._Mycont;
		_Myenum = _Right._Myenum;
		return (*this);
		}

	// constructors
	Enum_iterator(_Cont_t^ _Cont)
		:	_Mycont(_Cont), _Myenum(nullptr)
		{	// construct from container
		}

	Enum_iterator(_Cont_t^ _Cont, _Enum_t^ _Enum)
		:	_Mycont(_Cont), _Myenum(_Enum)
		{	// construct from container and enumerator
		if (!_Myenum->MoveNext())
			_Myenum = nullptr;
		}

	// operators
	static value_type operator->(Enum_iterator% _Left)
		{	// return pointer to class object
		return (_Left._Myenum->Current);
		}

	static value_type operator*(Enum_iterator% _Left)
		{	// return reference to designated element
		return (_Left._Myenum->Current);
		}

	Enum_iterator operator++()
		{	// return incremented
		if (!_Myenum->MoveNext())
			_Myenum = nullptr;
		return (*this);
		}

	Enum_iterator operator++(int)
		{	// return incremented
		Enum_iterator _Iter = *this;

		++*this;
		return (_Iter);
		}

	bool operator==(_Mytype_t% _Right)
		{	// test if *this == _Right
		if (_Mycont != _Right._Mycont)
			throw gcnew System::InvalidOperationException();
		return ((System::Object^)_Myenum == _Right._Myenum);
		}

	bool operator!=(_Mytype_t% _Right)
		{	// test if *this != _Right
		return (!(*this == _Right));
		}

_STLCLR_FIELD_ACCESS:
	// data members
	_Cont_t^ _Mycont;	// stored container handle
	_Enum_t^ _Myenum;	// stored enumerator handle
	};

//
// TEMPLATE CLASS collection_adapter<IEnumerable>
//
template<>
	ref class collection_adapter<
		System::Collections::IEnumerable>
	{	// wrapper for IEnumerable
public:
	// types
	typedef System::Collections::IEnumerable _Mycont_t;
	typedef System::Collections::IEnumerator _Myenum_t;
	typedef System::Object^ _Value_t;
	typedef collection_adapter<_Mycont_t> _Mytype_t;

	typedef Enum_iterator<_Mycont_t, _Myenum_t, _Value_t> iterator;

	typedef int size_type;
	typedef int difference_type;
	typedef _Value_t value_type;
	typedef _Value_t% reference;

	// basics
	collection_adapter()
		:	_Mycont(nullptr)
		{	// construct empty wrapper
		}

	collection_adapter(collection_adapter% _Right)
		:	_Mycont(_Right._Mycont)
		{	// construct by copying _Right
		}

	collection_adapter% operator=(collection_adapter% _Right)
		{	// assign
		_Mycont = _Right._Mycont;
		return (*this);
		}

	collection_adapter% operator=(collection_adapter^ _Right)
		{	// assign
		_Mycont = _Right->_Mycont;
		return (*this);
		}

	// constructors
	collection_adapter(_Mycont_t^ _Right)
		:	_Mycont(_Right)
		{	// construct by wrapping
		}

	// destructor
	~collection_adapter()
		{	// destroy the object
		}

	// accessors
	operator _Mycont_t^()
		{	// convert to base
		return (_Mycont);
		}

	_Mycont_t^ base()
		{	// return base
		return (_Mycont);
		}

	// iterator generators
	iterator begin()
		{	// return iterator for beginning of input sequence
		return (iterator(_Mycont, _Mycont->GetEnumerator()));
		}

	iterator end()
		{	// return iterator for end of input sequence
		return (iterator(_Mycont));
		}

	// size controllers
//	size_type size()
//		{	// return length of sequence
//		return (_Mycont->Count);
//		}

	// mutators
	void swap(collection_adapter% _Right)
		{	// exchange contents with _Right
		if ((Object^)this != %_Right)
			{	// worth doing, swap
			_Mycont_t^ _Tcont = _Mycont;

			_Mycont = _Right._Mycont;
			_Right._Mycont = _Tcont;
			}
		}

_STLCLR_FIELD_ACCESS:
	// data members
	_Mycont_t^ _Mycont;	// the wrapped IEnumerable interface
	};

//
// TEMPLATE CLASS collection_adapter<IEnumerable<T> >
//
template<typename _Value_t>
	ref class collection_adapter<
		System::Collections::Generic::IEnumerable<_Value_t> >
	{	// wrapper for IEnumerable<T>
public:
	// types
	typedef System::Collections::Generic::IEnumerable<_Value_t> _Mycont_t;
	typedef System::Collections::Generic::IEnumerator<_Value_t> _Myenum_t;
	typedef collection_adapter<_Mycont_t> _Mytype_t;

	typedef Enum_iterator<_Mycont_t, _Myenum_t, _Value_t> iterator;

	typedef int size_type;
	typedef int difference_type;
	typedef _Value_t value_type;
	typedef _Value_t% reference;

	// basics
	collection_adapter()
		:	_Mycont(nullptr)
		{	// construct empty wrapper
		}

	collection_adapter(collection_adapter% _Right)
		:	_Mycont(_Right._Mycont)
		{	// construct by copying _Right
		}

	collection_adapter% operator=(collection_adapter% _Right)
		{	// assign
		_Mycont = _Right._Mycont;
		return (*this);
		}

	collection_adapter% operator=(collection_adapter^ _Right)
		{	// assign
		_Mycont = _Right->_Mycont;
		return (*this);
		}

	// constructors
	collection_adapter(_Mycont_t^ _Right)
		:	_Mycont(_Right)
		{	// construct by wrapping
		}

	// destructor
	~collection_adapter()
		{	// destroy the object
		}

	// accessors
	operator _Mycont_t^()
		{	// convert to base
		return (_Mycont);
		}

	_Mycont_t^ base()
		{	// return base
		return (_Mycont);
		}

	// iterator generators
	iterator begin()
		{	// return iterator for beginning of input sequence
		return (iterator(_Mycont, _Mycont->GetEnumerator()));
		}

	iterator end()
		{	// return iterator for end of input sequence
		return (iterator(_Mycont));
		}

	// size controllers
//	size_type size()
//		{	// return length of sequence
//		return (_Mycont->Count);
//		}

	// mutators
	void swap(collection_adapter% _Right)
		{	// exchange contents with _Right
		if ((Object^)this != %_Right)
			{	// worth doing, swap
			_Mycont_t^ _Tcont = _Mycont;

			_Mycont = _Right._Mycont;
			_Right._Mycont = _Tcont;
			}
		}

_STLCLR_FIELD_ACCESS:
	// data members
	_Mycont_t^ _Mycont;	// the wrapped IEnumerable interface
	};

//
// TEMPLATE CLASS collection_adapter<ICollection>
//
template<>
	ref class collection_adapter<
		System::Collections::ICollection>
	{	// wrapper for ICollection
public:
	// types
	typedef System::Collections::ICollection _Mycont_t;
	typedef System::Collections::IEnumerator _Myenum_t;
	typedef System::Object^ _Value_t;
	typedef collection_adapter<_Mycont_t> _Mytype_t;

	typedef Enum_iterator<_Mycont_t, _Myenum_t, _Value_t> iterator;

	typedef int size_type;
	typedef int difference_type;
	typedef _Value_t value_type;
	typedef _Value_t% reference;

	// basics
	collection_adapter()
		:	_Mycont(nullptr)
		{	// construct empty wrapper
		}

	collection_adapter(collection_adapter% _Right)
		:	_Mycont(_Right._Mycont)
		{	// construct by copying _Right
		}

	collection_adapter% operator=(collection_adapter% _Right)
		{	// assign
		_Mycont = _Right._Mycont;
		return (*this);
		}

	collection_adapter% operator=(collection_adapter^ _Right)
		{	// assign
		_Mycont = _Right->_Mycont;
		return (*this);
		}

	// constructors
	collection_adapter(_Mycont_t^ _Right)
		:	_Mycont(_Right)
		{	// construct by wrapping
		}

	// destructor
	~collection_adapter()
		{	// destroy the object
		}

	// accessors
	operator _Mycont_t^()
		{	// convert to base
		return (_Mycont);
		}

	_Mycont_t^ base()
		{	// return base
		return (_Mycont);
		}

	// iterator generators
	iterator begin()
		{	// return iterator for beginning of input sequence
		return (iterator(_Mycont, _Mycont->GetEnumerator()));
		}

	iterator end()
		{	// return iterator for end of input sequence
		return (iterator(_Mycont));
		}

	// size controllers
	size_type size()
		{	// return length of sequence
		return (_Mycont->Count);
		}

	// mutators
	void swap(collection_adapter% _Right)
		{	// exchange contents with _Right
		if ((Object^)this != %_Right)
			{	// worth doing, swap
			_Mycont_t^ _Tcont = _Mycont;

			_Mycont = _Right._Mycont;
			_Right._Mycont = _Tcont;
			}
		}

_STLCLR_FIELD_ACCESS:
	// data members
	_Mycont_t^ _Mycont;	// the wrapped ICollection interface
	};

//
// TEMPLATE CLASS collection_adapter<ICollection<T> >
//
template<typename _Value_t>
	ref class collection_adapter<
		System::Collections::Generic::ICollection<_Value_t> >
	{	// wrapper for ICollection<T>
public:
	// types
	typedef System::Collections::Generic::ICollection<_Value_t> _Mycont_t;
	typedef System::Collections::Generic::IEnumerator<_Value_t> _Myenum_t;
	typedef collection_adapter<_Mycont_t> _Mytype_t;

	typedef Enum_iterator<_Mycont_t, _Myenum_t, _Value_t> iterator;

	typedef int size_type;
	typedef int difference_type;
	typedef _Value_t value_type;
	typedef _Value_t% reference;

	// basics
	collection_adapter()
		:	_Mycont(nullptr)
		{	// construct empty wrapper
		}

	collection_adapter(collection_adapter% _Right)
		:	_Mycont(_Right._Mycont)
		{	// construct by copying _Right
		}

	collection_adapter% operator=(collection_adapter% _Right)
		{	// assign
		_Mycont = _Right._Mycont;
		return (*this);
		}

	collection_adapter% operator=(collection_adapter^ _Right)
		{	// assign
		_Mycont = _Right->_Mycont;
		return (*this);
		}

	// constructors
	collection_adapter(_Mycont_t^ _Right)
		:	_Mycont(_Right)
		{	// construct by wrapping
		}

	// destructor
	~collection_adapter()
		{	// destroy the object
		}

	// accessors
	operator _Mycont_t^()
		{	// convert to base
		return (_Mycont);
		}

	_Mycont_t^ base()
		{	// return base
		return (_Mycont);
		}

	// iterator generators
	iterator begin()
		{	// return iterator for beginning of input sequence
		return (iterator(_Mycont, _Mycont->GetEnumerator()));
		}

	iterator end()
		{	// return iterator for end of input sequence
		return (iterator(_Mycont));
		}

	// size controllers
	size_type size()
		{	// return length of sequence
		return (_Mycont->Count);
		}

	// mutators
	void swap(collection_adapter% _Right)
		{	// exchange contents with _Right
		if ((Object^)this != %_Right)
			{	// worth doing, swap
			_Mycont_t^ _Tcont = _Mycont;

			_Mycont = _Right._Mycont;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性一二三区| 性做久久久久久久免费看| 精品一区二区三区免费播放| 欧美日韩精品一区二区三区| 性欧美大战久久久久久久久| 51久久夜色精品国产麻豆| 日本不卡一区二区| 精品国产乱码91久久久久久网站| 国内久久婷婷综合| 国产亚洲精品资源在线26u| 国产白丝网站精品污在线入口| 国产亚洲视频系列| 一本色道亚洲精品aⅴ| 亚洲高清免费观看 | 国产精品免费aⅴ片在线观看| 国产成人在线视频网站| 中文字幕亚洲综合久久菠萝蜜| 在线亚洲一区观看| 日本不卡在线视频| 国产精品女同互慰在线看| 日本韩国精品在线| 免费观看日韩av| 中文字幕二三区不卡| 欧美亚洲综合色| 国内精品久久久久影院一蜜桃| 国产精品久久久爽爽爽麻豆色哟哟| 91九色最新地址| 麻豆91在线播放| 日韩毛片精品高清免费| 在线播放91灌醉迷j高跟美女| 国产一区二区三区高清播放| 亚洲理论在线观看| 精品国偷自产国产一区| 91麻豆国产福利在线观看| 蜜桃视频在线观看一区| 亚洲天堂免费在线观看视频| 欧美一区二区久久| 99v久久综合狠狠综合久久| 日韩高清中文字幕一区| 一区二区中文字幕在线| 日韩午夜在线影院| 色哦色哦哦色天天综合| 国产精品一二三区在线| 亚洲成人先锋电影| 国产精品久久久久永久免费观看| 日韩一区和二区| 色香蕉成人二区免费| 国产精品亚洲一区二区三区在线 | 在线这里只有精品| 国产aⅴ精品一区二区三区色成熟| 亚洲超碰97人人做人人爱| 国产精品你懂的在线欣赏| 日韩三级视频在线观看| 日本乱人伦aⅴ精品| 国产激情视频一区二区在线观看| 日韩高清一区在线| 亚洲一区二区三区四区的| 中文字幕在线一区免费| 久久伊99综合婷婷久久伊| 7777精品久久久大香线蕉| 色偷偷久久人人79超碰人人澡| 国产91精品久久久久久久网曝门| 日日夜夜精品视频天天综合网| 日韩理论片在线| 国产精品美女久久久久久2018| 日韩精品一区二区三区四区视频| 欧美日韩久久一区二区| 91国偷自产一区二区使用方法| 不卡一区二区中文字幕| 国产成人综合网| 丁香婷婷综合激情五月色| 黄色精品一二区| 轻轻草成人在线| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产乱淫av一区二区三区| 免费视频一区二区| 久久97超碰国产精品超碰| 玖玖九九国产精品| 精品一区二区三区久久| 久久99精品国产麻豆婷婷洗澡| 美女视频免费一区| 免费成人在线网站| 久久精品国产第一区二区三区| 免费久久精品视频| 另类欧美日韩国产在线| 国产呦精品一区二区三区网站| 国产在线国偷精品免费看| 国产最新精品精品你懂的| 国产精品乡下勾搭老头1| 国产99久久久国产精品免费看| 国产精品99久久久久久宅男| 国产jizzjizz一区二区| 成人白浆超碰人人人人| 色94色欧美sute亚洲13| 91.成人天堂一区| 欧美v日韩v国产v| 国产日韩一级二级三级| 亚洲三级在线播放| 亚洲成人精品影院| 毛片一区二区三区| 高潮精品一区videoshd| 91麻豆精品秘密| 欧美一三区三区四区免费在线看| 日韩免费看的电影| 中日韩免费视频中文字幕| 亚洲美女区一区| 日本少妇一区二区| 成人免费看视频| 欧美三级电影网站| 欧美精品一区二区三区四区| 国产精品国产三级国产普通话蜜臀| 亚洲女人****多毛耸耸8| 日韩精品欧美精品| 国产91精品免费| 欧美性色欧美a在线播放| 精品久久99ma| 亚洲免费观看视频| 理论电影国产精品| 色婷婷久久久亚洲一区二区三区| 欧美精品一级二级| 国产精品日韩精品欧美在线| 香蕉乱码成人久久天堂爱免费| 国产尤物一区二区| 在线观看视频一区| 国产亚洲污的网站| 丝袜国产日韩另类美女| 成人av在线资源网| 日韩一卡二卡三卡四卡| 亚洲欧美日韩在线不卡| 久88久久88久久久| 欧美亚洲日本国产| 欧美极品xxx| 蜜桃精品视频在线观看| 91年精品国产| 久久久亚洲高清| 亚洲成人免费av| 色综合天天做天天爱| 久久毛片高清国产| 午夜欧美电影在线观看| 成人性生交大片免费看视频在线| 91精品久久久久久久91蜜桃| 亚洲色图欧美偷拍| 国产成人午夜精品影院观看视频| 欧美久久婷婷综合色| 最新高清无码专区| 国产乱码精品一区二区三区av| 欧美一卡在线观看| 亚洲成人av在线电影| 99久精品国产| 国产精品网站一区| 国产在线不卡一卡二卡三卡四卡| 欧美日韩国产免费| 一区二区三区视频在线看| 9色porny自拍视频一区二区| 日韩精品一区二区三区在线观看| 丝袜美腿亚洲一区| 欧美日韩高清影院| 午夜精品影院在线观看| 欧美亚洲一区三区| 亚洲影院在线观看| 日本电影欧美片| 一区二区三区在线免费播放| 99久久婷婷国产| 日韩一区在线看| 不卡av电影在线播放| 欧美国产一区视频在线观看| 国产成人免费网站| 国产女主播视频一区二区| 国产一区视频网站| 国产欧美日本一区视频| 国产99久久久国产精品潘金| 国产精品色一区二区三区| 成人听书哪个软件好| 国产精品第一页第二页第三页| 成人国产一区二区三区精品| 国产精品久久久久一区二区三区 | 色综合天天性综合| 成人免费在线播放视频| 91网站在线播放| 亚洲综合色成人| 欧美色爱综合网| 男男成人高潮片免费网站| 精品久久久久久久久久久久久久久 | 国产成人亚洲精品青草天美| 中文字幕第一区综合| 99久久免费国产| 夜夜精品视频一区二区| 欧美日韩亚洲综合一区二区三区| 日韩影院精彩在线| 欧美成人精精品一区二区频| 国产精品亚洲专一区二区三区 | 精品一区二区三区在线播放视频 | 欧美日韩久久一区| 美女在线一区二区| 欧美国产精品中文字幕| 色屁屁一区二区| 狠狠色综合播放一区二区| 国产精品美女久久久久久2018| 欧美主播一区二区三区美女| 久久av资源站|