锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品日韩欧美久久综合,久久天天躁狠狠躁夜夜不卡 ,久久精品国产精品亚洲人人 http://www.shnenglu.com/nj-blog/category/2417.html璇諱功,瀛︿範涓庢濊?zh-cnThu, 22 May 2008 20:10:24 GMTThu, 22 May 2008 20:10:24 GMT60Scott Meyers鏈榪戜竴嬈ha錛佹椂鍒?/title><link>http://www.shnenglu.com/nj-blog/archive/2006/11/03/14595.html</link><dc:creator>灝忓北鏃ュ織</dc:creator><author>灝忓北鏃ュ織</author><pubDate>Thu, 02 Nov 2006 17:10:00 GMT</pubDate><guid>http://www.shnenglu.com/nj-blog/archive/2006/11/03/14595.html</guid><wfw:comment>http://www.shnenglu.com/nj-blog/comments/14595.html</wfw:comment><comments>http://www.shnenglu.com/nj-blog/archive/2006/11/03/14595.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/nj-blog/comments/commentRss/14595.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/nj-blog/services/trackbacks/14595.html</trackback:ping><description><![CDATA[聽聽聽 瀛熷博鍦ㄨ嚜宸辯殑blog涓?a title="鎻愬埌浜? >鎻愬埌浜?/a> Scott Meyers鍦ˋrtima.com鐨凜++ Source鏍忕洰涓彂琛ㄧ殑涓涓?脳5鐨勭郴鍒椼傚叾涓渶鍚庝竴綃囨槸Scott Meyers鐨?a title="浜斾釜鏈閲嶈鐨凜++Aha錛佹椂鍒? >浜斾釜鏈閲嶈鐨凜++Aha錛佹椂鍒?/a> 錛屽瓱宀╂彁紺哄ぇ瀹跺叧娉ㄦ渶鍚庝竴涓傚鏋滃叧娉ㄨ繃Scott Meyers鍜屼粬鐨凟ffectiv緋誨垪鐨勮瘽錛屽浠栧墠鍥涗釜Aha錛佹椂鍒誨簲璇ラ兘宸茬粡鐔熻瘑浜嗐?br /><div>聽聽聽 榪欓噷浠呯炕璇戠浜斾釜錛?br /><h3>鏄庣櫧Boost鐨?span style="FONT-STYLE: italic">shared_ptr</span>閲?span style="FONT-STYLE: italic">deleter</span>鏄浣曞伐浣滅殑錛?004 </h3>Boost鐨勫紩鐢ㄨ鏁版櫤鑳芥寚閽坰hared_ptr鏈変竴涓湁瓚g殑鐗規э紝浣犲彲浠ヤ紶鍏ヤ竴涓嚱鏁版垨鑰呬竴涓嚱鏁頒綋錛屽茍涓斿綋寮?br />鐢ㄨ鏁頒負闆舵椂錛屽畠浼氬鎸囧悜鐨勫璞¤皟鐢ㄨ繖涓猟eleter銆傝浜鴻劯綰㈢殑鏄紝榪欑湅璧鋒潵寰堝鉤鍑★紝浣嗘槸璇風湅榪欐浠g爜錛?br /><br /><span style="COLOR: rgb(0,153,0)"><span style="COLOR: rgb(0,0,0)"><span style="COLOR: rgb(0,153,0)"><span style="COLOR: rgb(0,0,0)"><span style="COLOR: rgb(0,0,0)"><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">template</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">typename聽聽T</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">聽聽shared_ptr聽{<br /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br />聽聽聽聽template</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">typename聽U,聽typename聽D</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />聽聽聽聽</span><span style="COLOR: #0000ff">explicit</span><span style="COLOR: #000000">聽聽shared_ptr(U</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">聽ptr,聽D聽deleter);<br />聽聽聽聽<img src="http://www.shnenglu.com/images/dot.gif" /><br />};<br /></span></div><br /></span></span></span></span></span>瑕佹敞鎰忕殑鏄湪鏋愭瀯鐨勬湡闂磗hared_ptr<T>蹇呴』涓虹被鍨嬩負D鐨刣eleter鍋氫簺瀹夋帓錛屼互紜繚瀹冪殑璋冪敤錛岀劧鑰宻hared_ptr<T>騫朵笉鐭ラ亾綾誨瀷D鍒板簳鏄粈涔堛傛瀵硅薄涓嶈兘鍖呭惈綾誨瀷涓篋鐨勬暟鎹垚鍛橈紝褰撶劧涔熶笉鑳芥湁涓涓寚鍚戠被鍨嬩負D鐨勫璞$殑鎸囬拡錛屽洜涓哄綋瀵硅薄鎴愬憳鏁版嵁澹版槑鐨勬椂鍊欏浜嶥濂戒笉鐭ユ儏銆傞偅涔坰hared_ptr瀵硅薄濡備綍鍦ㄦ瀯閫犳湡deleter琚紶鍏ユ椂淇濆瓨瀹冪殑韙抗錛屽茍涓斿湪紼嶅悗鐨勬瀽鏋勬湡浣跨敤瀹冪殑鍛愶紵鏇翠竴鑸殑璇存硶錛屽湪涓涓璞$殑鏋勯犳湡闂存瀯閫犲嚱鏁板浣曡幏寰楁湭鐭ョ被鍨嬬殑淇℃伅錛屽茍鎶婄被鍨嬬殑淇℃伅浼犵粰姝ゅ璞★紝鑰屽璞′笉鑳戒繚瀛樺叧浜庢綾誨瀷浠諱綍鎻愮ず銆?br /><br />絳旀寰堢畝鍗曪細姝ゅ璞″寘鍚竴涓凡鐭ョ被鍨嬬殑鍩虹被鎸囬拡錛圔oost綆″畠鍙仛 sp_counted_base 錛夛紝鎸囧悜涓涓凡緇忔瀯閫犲疄渚嬪寲鐨勬ā鏉匡紝姝ゆā鏉跨戶鎵胯嚜鍓嶉潰鐨勫熀綾伙紝騫朵嬌鐢―浣滀負瀹炰緥鍖栧弬鏁幫紙Boost浣跨敤妯℃澘 sp_counted_impl_p 鍜?sp_counted_impl_pd 錛夛紝浣跨敤涓涓湪鍩虹被閲屽0鏄庯紝緇ф壙綾諱腑瀹氫箟鐨勮櫄鍑芥暟鏉ヨ皟鐢?deleter 錛圔oost浣跨敤 dispose 錛夈傜◢寰畝鍖栦簡錛屽畠鐪嬭搗鏉ュ儚涓嬮潰榪欐牱錛?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <img height="156" src="http://docs.google.com/File?id=dcjhdv5v_16f63d7b" width="343" align="absMiddle" />聽<br />瀹冩槸寰堟槑鏄劇殑錛屽彧瑕佷綘鐪嬭繃瀹冧竴嬈°備絾鏄彧瑕佷綘鐪嬭繃瀹冧竴嬈★紝浣犲氨浼氫綋浼氬埌瀹冨彲浠ヨ鐢ㄥ埌寰堝縐嶇被鐨勫湴鏂癸紝瀹冩墦寮浜嗘ā鏉胯璁$殑鏂拌閲庯紝妯℃澘鍖栫被浣跨敤鐩稿杈冨皯鐨勬ā鏉垮弬鏁幫紙shared_ptr 鍙槸鍏朵腑涓涓級鍙互寮曠敤涓嶅彈鏁伴噺闄愬埗鐨勫綋鍓嶄笉鐭ュ悕綾誨瀷鐨勪俊鎭傚綋鎴戞剰璇嗗埌鎴戞帴榪戠殑涓滆タ錛屾垜涓嶈兘紱佹鍦伴湶鍑鴻禐璧忕殑絎戝騫舵憞鏅冩垜鐨勮剳琚嬨?br /><br /></div><img src ="http://www.shnenglu.com/nj-blog/aggbug/14595.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/nj-blog/" target="_blank">灝忓北鏃ュ織</a> 2006-11-03 01:10 <a href="http://www.shnenglu.com/nj-blog/archive/2006/11/03/14595.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Boost/utility閲屾湁浜涗粈涔?(2)http://www.shnenglu.com/nj-blog/archive/2006/08/16/11264.html灝忓北鏃ュ織灝忓北鏃ュ織Tue, 15 Aug 2006 16:24:00 GMThttp://www.shnenglu.com/nj-blog/archive/2006/08/16/11264.htmlhttp://www.shnenglu.com/nj-blog/comments/11264.htmlhttp://www.shnenglu.com/nj-blog/archive/2006/08/16/11264.html#Feedback0http://www.shnenglu.com/nj-blog/comments/commentRss/11264.htmlhttp://www.shnenglu.com/nj-blog/services/trackbacks/11264.html 2. 鍑芥暟妯℃澘 checked_delete() 鍜?/span> checked_array_delete()

<boost/checked_delete.hpp> 瀹氫箟浜嗕袱涓嚱鏁版ā鏉?/span> checked_delete 鍜?/span> checked_array_delete 錛?/span> 榪樻湁涓や釜綾繪ā鏉?/span> checked_deleter 鍜?/span> checked_array_deleter銆?/span>

褰撴垜浠埄鐢ㄦ寚閽堝垹闄や竴涓璞$殑鏃跺欙紝瀵硅薄綾誨瀷鏄惁瀹屾暣鍐沖畾浜嗗璞℃槸鍚﹁兘澶熻姝g‘鍒犻櫎銆備絾鏄紝濡傛灉浣犵敤 delete 鍘誨垹闄や竴涓被鍨嬪茍涓嶅畬鏁寸殑瀵硅薄鐨勬寚閽堬紝緙栬瘧鍣ㄥ茍涓嶄細緇欎綘鎻愪緵浠諱綍閿欒淇℃伅錛堝ソ鍚э紝鏈変簺緙栬瘧鍣ㄤ細緇欏嚭璀﹀憡淇℃伅錛屼絾鏄▼搴忓憳閫氬父浼氬拷鐣ヨ鍛婁俊鎭級錛屼絾鏄繖鏍峰仛鐨勭粨鏋滃嵈鏄璞$殑鏋愭瀯鍑芥暟鏍規湰灝辨病鏈夎璋冪敤銆?/span>

鎵浠ワ紝鎴戜滑搴斿綋浣跨敤鏇翠弗鍘夌殑鎵嬫紱佹榪欑浜嬫儏鐨勫彂鐢熴傛瘮濡傝浣跨敤 checked_delete 浠f浛 delete 鏉ュ垹闄ゆ寚閽堛傚綋鎸囬拡鎵鎸囧悜鐨勬槸涓涓笉瀹屽叏綾誨瀷鏃訛紝 checked_delete 浼氫嬌緙栬瘧鍣ㄥ彂鍑洪敊璇俊鎭?/span>

class 聽test錛?/span> // 鏈夊0鏄庯紝浣嗘槸蹇樿浜嗗畾涔夛紝鎴栨槸蹇樿聽聽聽聽
聽聽聽聽聽聽聽聽聽聽
// 鍖呭惈瀹氫箟鏂囦歡錛宼est鏄竴涓笉瀹屽叏綾誨瀷

main()
{
test聽
* 聽pt聽 = 聽NULL;
delete聽pt;聽聽
//
聽鏈夋椂浼氭湁璀﹀憡淇℃伅錛?br />聽聽聽聽聽聽聽聽聽聽聽聽 // 浣嗘湁鏃朵粈涔堥兘娌℃湁銆?/span>
checked_delete(pt);聽 // 聽鍙戝嚭閿欒淇℃伅銆?/span>
}

checked_array_delete 鏄敤鏉ュ搴斾簬 delete [ ] operator 錛?/span> checked_deleter 鍜?/span> checked_array_deleter 鏄彲浠ラ厤鎺ョ殑浠垮嚱鏁扮増鏈?/span>

3. 鍑芥暟妯℃澘 next() 鍜?/span> prior()
鍖呮嫭

template < class T > T聽next(T聽x);
template
< class T, class 聽Distance >
T聽next(T聽x,聽Distance聽n);
template
< class T >
T聽prior(T聽x);
template
< class T, class 聽Distance >
T prior(T聽x,聽Distance聽n);

鍑芥暟妯℃澘瀵逛紶鍏ョ殑鎸囬拡錛屾櫤鑳芥寚閽堟垨鏄凱浠e櫒鍋氶掑鎴栭掑噺錛屽茍浼犲洖瀹冦傜敤娉曞涓嬶細

const 聽std::list < T > ::iterator聽p聽 = 聽get_some_iterator();
const 聽std::list < T > ::iterator聽prev聽 =
聽boost::prior(p);
const 聽std::list < T > ::iterator聽next聽 = 聽boost::next(prev,聽 2 );

浜嬪疄涓婏紝 T next(T x) 鍜?/span> T prior(T x) 灝嗗垎鍒皟鐢?/span> operator++ 鍜?/span> operator-- 錛岃?/span> T next(T x, Distance n) 鍜?/span> T prior(T x, Distance n) 鍒欒皟鐢?/span> std::distance(T x, size_t n) 銆?

4.noncopyable 綾?/span>

濡傛灉浣犻渶瑕佽璁′竴涓笉鍙互琚鍒剁殑綾伙紝閭d箞浣犲氨瑕佹槑紜湴灝嗗畠鐨勬嫹璐濇瀯閫犲嚱鏁板拰 operator = () 鏀懼埌 private 澹版槑涓嬮潰銆?/span> Boos\utility 鍑嗗浜嗕竴涓熀綾?/span> noncopyable 錛屼綘鍙渶瑕佽浣犵殑綾葷戶鎵胯嚜 noncopyable 灝卞彲浠ヨ幏寰楄繖涓ц川銆傚浣犵殑綾繪潵璇磋繖涔熸槸涓涓樉寮忕殑澹版槑錛氣滄垜鏄笉鍙互琚鍒剁殑錛佲?/span>
鐢ㄦ硶錛?/span>

#include聽 < boost / utility.hpp >

class
聽ResourceLadenFileSystem聽:聽boost::noncopyable聽{


5 錛庡嚱鏁版ā鏉?/span> addressof()

鍑芥暟妯℃澘榪斿洖涓涓璞$殑鐪熷疄鍦板潃錛堝綋鐒惰繖鏄氦緇欐寚閽堜簡錛夛細

template < typename聽T > inline聽T * 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽addressof(T & 聽v);
template
< typename聽T > inline const 聽T * 聽聽聽聽聽聽聽聽 addressof( const 聽T &
聽v);
template
< typename聽T > inline volatile 聽T * 聽聽聽聽聽 addressof( volatile 聽T &
聽v);
template
< typename聽T > inline const volatile T * 聽addressof( const volatile T & v);

鎴戠煡閬撲綘鎯寵錛屼負浠涔堜笉鏄畝鍗曠殑璋冪敤operator&()銆傚洜涓?/span>c++鍏佽閲嶈澆operator&()錛屾墍浠ユ湁鏃朵嬌鐢ㄥ畠鑾峰緱鐨勫茍涓嶆槸瀵硅薄鐨勭湡瀹炲湴鍧錛岃屾槸緙栧啓閲嶈澆operator&()浠g爜鐨勪綔鑰呭笇鏈涚粰浣犵殑閭d釜銆傚鏋滀綘鍗存槸甯屾湜鑾峰緱鐨勬槸榪欎釜瀵硅薄鐨勫湴鍧錛屼嬌鐢?/span>addressof():

#include聽<boost/utility.hpp>
struct聽useless_type聽{};

class
聽nonaddressable聽{
聽聽useless_type聽
operator&()聽const
;
};

void
聽f()聽{
聽聽nonaddressable聽x;
聽聽nonaddressable
*聽xp聽=
聽boost::addressof(x);
聽聽
//聽nonaddressable*聽xpe聽=聽&x;聽//
error!聽operator&()宸茬粡琚噸杞斤紝
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//瀹冭繑鍥炵殑鏄痷seless_type鐨勬寚閽?/span>
}




涓婅堪鐨勬墍鏈変笢瑗塊兘鍙互綆鍗曠殑閫氳繃鍦ㄤ綘鐨勬簮鏂囦歡寮澶村鍐欎笂錛?br />
#include聽<boost\utility.hpp>
usingnamespace聽boost;
灝卞彲浠ヤ嬌鐢ㄤ簡銆傚綋鐒舵垜鏄寚浣犳満鍣ㄤ笂宸茬粡鏈塨oost榪欎釜濂囧鐨勫簱錛屽茍涓旀紜厤緗甞_^

]]>
Boost/utility閲屾湁浠涔堜笢瑗匡紵(1)http://www.shnenglu.com/nj-blog/archive/2006/08/11/11144.html灝忓北鏃ュ織灝忓北鏃ュ織Fri, 11 Aug 2006 15:59:00 GMThttp://www.shnenglu.com/nj-blog/archive/2006/08/11/11144.htmlhttp://www.shnenglu.com/nj-blog/comments/11144.htmlhttp://www.shnenglu.com/nj-blog/archive/2006/08/11/11144.html#Feedback0http://www.shnenglu.com/nj-blog/comments/commentRss/11144.htmlhttp://www.shnenglu.com/nj-blog/services/trackbacks/11144.html 鍜?/span> STL 鐨?/span> utility 涓鏍鳳紝 boost/utility 閲屽寘鍚簡涓浜涘疄鐢ㄧ殑灝忓伐鍏楓?/span>

棣栧厛鏄?/span> Base-from-Member 錛?/span>

鏈夋椂浣犲彲鑳介渶瑕佷緷璧栨垚鍛樺彉閲忔潵鍒濆鍖栧熀綾伙紝鍍忚繖鏍鳳細

class 聽fdoutbuf
聽聽聽聽:聽
public 聽std::streambuf
{
public :
聽聽聽聽
explicit 聽fdoutbuf(聽 int 聽fd聽);
聽聽聽聽
//
};

class 聽fdostream
聽聽聽聽:聽
public 聽std::ostream
{
protected :
聽聽聽聽fdoutbuf聽buf;
public :
聽聽聽聽
explicit 聽fdostream(聽 int 聽fd聽)
聽聽聽聽聽聽聽聽:聽buf(聽fd聽),聽std::ostream(聽
& buf聽)
聽聽聽聽聽聽聽聽{}
聽聽聽聽
//
};


浣嗘槸錛岃繖閲?/span> fdostream 鐨勬瀯閫犲嚱鏁扮殑鍒濆鍖栨槸閿欒鐨勶紝鍥犱負 c++ 璇硶瑕佹眰鍩虹被鐨勫垵濮嬪寲瑕佸厛浜庢垚鍛樺彉閲忕殑鍒濆鍖栥?/span> Base-from-Member 鎻愪緵鐨勮В鍐充箣閬撳涓嬶細

class 聽fdoutbuf
聽聽聽聽:聽
public 聽std::streambuf
{
public :
聽聽聽聽
explicit 聽fdoutbuf(聽 int 聽fd聽);
聽聽聽聽
//
};

class 聽fdostream
聽聽聽聽:聽
private 聽boost::base_from_member < fdoutbuf >
聽聽聽聽,聽
public 聽std::ostream
{
聽聽聽聽
// 聽Helper聽typedef's
聽聽聽聽typedef聽boost::base_from_member
< fdoutbuf > 聽聽pbase_type;
聽聽聽聽typedef聽std::ostream聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽base_type;
public :
聽聽聽聽
explicit 聽fdostream(聽 int 聽fd聽)
聽聽聽聽聽聽聽聽:聽pbase_type(聽fd聽),聽base_type(聽
& member聽)
聽聽聽聽聽聽聽聽{}
聽聽聽聽
//
};

妯℃澘綾?/span> template < typename MemberType, int UniqueID = 0 >
聽聽聽聽聽聽聽 class boost::base_from_member;
鏄竴涓瑕嗙被錛堝涓旇繖涔堝彨浜?/span> ^_^ 錛夈?br />濡備笂錛岀鏈夌戶鎵?/span> base_from_member 錛屽師鍏堢殑鎴愬憳鍙橀噺灝嗗仛涓?/span> base_from_member 鐨勬垚鍛樺彉閲?/span> member 鍏堜簬鍩虹被 base_type 鍒濆鍖栵紝榪欐牱鎵闇鐨勪緷璧栧叧緋誨彲浠ユ弧瓚熾備簨瀹炰笂姣旇繖鏇村ソ鐨勬槸錛?/span> base_from_member 鐨勬瀯閫犲嚱鏁版槸妯℃澘鍑芥暟錛屽畠鍙互鏈?/span> 0 鑷?/span> 10 涓弬鏁幫紝鍙傛暟綾誨瀷鍙互鍚勪笉鐩稿悓銆?/span>

]]>
久久久久久久久久久精品尤物| 亚洲狠狠婷婷综合久久蜜芽| 久久久久久久综合日本亚洲| 亚洲国产天堂久久综合网站| 人妻精品久久久久中文字幕| 久久久www免费人成精品| 色婷婷综合久久久久中文一区二区| 久久精品人人槡人妻人人玩AV| 亚洲综合婷婷久久| 欧美一区二区久久精品| www.久久热| 亚洲国产视频久久| 99国产精品久久久久久久成人热| 久久精品国产只有精品66| 亚洲αv久久久噜噜噜噜噜| 久久精品无码av| 久久精品国产精品亚洲毛片| 久久人人爽人人爽人人片AV麻豆| 久久久久国产精品熟女影院| 亚洲国产小视频精品久久久三级 | 亚洲欧洲日产国码无码久久99| 国产精品青草久久久久婷婷| 久久综合久久鬼色| 国产亚洲精品自在久久| 欧美伊人久久大香线蕉综合 | 精品多毛少妇人妻AV免费久久| 久久精品国产亚洲av麻豆蜜芽 | 久久久久久午夜成人影院| 日韩电影久久久被窝网| 99久久国语露脸精品国产| 亚洲欧美日韩中文久久| 久久精品国产男包| 欧美午夜精品久久久久久浪潮| 四虎国产永久免费久久| 国产精品美女久久久m| 一本色道久久99一综合| 久久久久久精品免费看SSS| 国产精品久久久久久五月尺| 欧美久久久久久午夜精品| 久久久久久无码国产精品中文字幕 | 亚洲一区中文字幕久久|