锘??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 GMT60- Scott Meyers鏈榪戜竴嬈ha錛佹椂鍒?/title>http://www.shnenglu.com/nj-blog/archive/2006/11/03/14595.html灝忓北鏃ュ織灝忓北鏃ュ織Thu, 02 Nov 2006 17:10:00 GMThttp://www.shnenglu.com/nj-blog/archive/2006/11/03/14595.htmlhttp://www.shnenglu.com/nj-blog/comments/14595.htmlhttp://www.shnenglu.com/nj-blog/archive/2006/11/03/14595.html#Feedback0http://www.shnenglu.com/nj-blog/comments/commentRss/14595.htmlhttp://www.shnenglu.com/nj-blog/services/trackbacks/14595.html鎻愬埌浜?/a> Scott Meyers鍦ˋrtima.com鐨凜++ Source鏍忕洰涓彂琛ㄧ殑涓涓?脳5鐨勭郴鍒椼傚叾涓渶鍚庝竴綃囨槸Scott Meyers鐨?a title="浜斾釜鏈閲嶈鐨凜++Aha錛佹椂鍒? >浜斾釜鏈閲嶈鐨凜++Aha錛佹椂鍒?/a> 錛屽瓱宀╂彁紺哄ぇ瀹跺叧娉ㄦ渶鍚庝竴涓傚鏋滃叧娉ㄨ繃Scott Meyers鍜屼粬鐨凟ffectiv緋誨垪鐨勮瘽錛屽浠栧墠鍥涗釜Aha錛佹椂鍒誨簲璇ラ兘宸茬粡鐔熻瘑浜嗐?br />
聽聽聽 榪欓噷浠呯炕璇戠浜斾釜錛?br />
鏄庣櫧Boost鐨?span style="FONT-STYLE: italic">shared_ptr閲?span style="FONT-STYLE: italic">deleter鏄浣曞伐浣滅殑錛?004
Boost鐨勫紩鐢ㄨ鏁版櫤鑳芥寚閽坰hared_ptr鏈変竴涓湁瓚g殑鐗規э紝浣犲彲浠ヤ紶鍏ヤ竴涓嚱鏁版垨鑰呬竴涓嚱鏁頒綋錛屽茍涓斿綋寮?br />鐢ㄨ鏁頒負闆舵椂錛屽畠浼氬鎸囧悜鐨勫璞¤皟鐢ㄨ繖涓猟eleter銆傝浜鴻劯綰㈢殑鏄紝榪欑湅璧鋒潵寰堝鉤鍑★紝浣嗘槸璇風湅榪欐浠g爜錛?br />
template<typename聽聽T>
class聽聽shared_ptr聽{
public:
聽聽聽聽template<typename聽U,聽typename聽D>
聽聽聽聽explicit聽聽shared_ptr(U*聽ptr,聽D聽deleter);
聽聽聽聽
};
瑕佹敞鎰忕殑鏄湪鏋愭瀯鐨勬湡闂磗hared_ptr<T>蹇呴』涓虹被鍨嬩負D鐨刣eleter鍋氫簺瀹夋帓錛屼互紜繚瀹冪殑璋冪敤錛岀劧鑰宻hared_ptr<T>騫朵笉鐭ラ亾綾誨瀷D鍒板簳鏄粈涔堛傛瀵硅薄涓嶈兘鍖呭惈綾誨瀷涓篋鐨勬暟鎹垚鍛橈紝褰撶劧涔熶笉鑳芥湁涓涓寚鍚戠被鍨嬩負D鐨勫璞$殑鎸囬拡錛屽洜涓哄綋瀵硅薄鎴愬憳鏁版嵁澹版槑鐨勬椂鍊欏浜嶥濂戒笉鐭ユ儏銆傞偅涔坰hared_ptr瀵硅薄濡備綍鍦ㄦ瀯閫犳湡deleter琚紶鍏ユ椂淇濆瓨瀹冪殑韙抗錛屽茍涓斿湪紼嶅悗鐨勬瀽鏋勬湡浣跨敤瀹冪殑鍛愶紵鏇翠竴鑸殑璇存硶錛屽湪涓涓璞$殑鏋勯犳湡闂存瀯閫犲嚱鏁板浣曡幏寰楁湭鐭ョ被鍨嬬殑淇℃伅錛屽茍鎶婄被鍨嬬殑淇℃伅浼犵粰姝ゅ璞★紝鑰屽璞′笉鑳戒繚瀛樺叧浜庢綾誨瀷浠諱綍鎻愮ず銆?br />
絳旀寰堢畝鍗曪細姝ゅ璞″寘鍚竴涓凡鐭ョ被鍨嬬殑鍩虹被鎸囬拡錛圔oost綆″畠鍙仛 sp_counted_base 錛夛紝鎸囧悜涓涓凡緇忔瀯閫犲疄渚嬪寲鐨勬ā鏉匡紝姝ゆā鏉跨戶鎵胯嚜鍓嶉潰鐨勫熀綾伙紝騫朵嬌鐢―浣滀負瀹炰緥鍖栧弬鏁幫紙Boost浣跨敤妯℃澘 sp_counted_impl_p 鍜?sp_counted_impl_pd 錛夛紝浣跨敤涓涓湪鍩虹被閲屽0鏄庯紝緇ф壙綾諱腑瀹氫箟鐨勮櫄鍑芥暟鏉ヨ皟鐢?deleter 錛圔oost浣跨敤 dispose 錛夈傜◢寰畝鍖栦簡錛屽畠鐪嬭搗鏉ュ儚涓嬮潰榪欐牱錛?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽

聽
瀹冩槸寰堟槑鏄劇殑錛屽彧瑕佷綘鐪嬭繃瀹冧竴嬈°備絾鏄彧瑕佷綘鐪嬭繃瀹冧竴嬈★紝浣犲氨浼氫綋浼氬埌瀹冨彲浠ヨ鐢ㄥ埌寰堝縐嶇被鐨勫湴鏂癸紝瀹冩墦寮浜嗘ā鏉胯璁$殑鏂拌閲庯紝妯℃澘鍖栫被浣跨敤鐩稿杈冨皯鐨勬ā鏉垮弬鏁幫紙shared_ptr 鍙槸鍏朵腑涓涓級鍙互寮曠敤涓嶅彈鏁伴噺闄愬埗鐨勫綋鍓嶄笉鐭ュ悕綾誨瀷鐨勪俊鎭傚綋鎴戞剰璇嗗埌鎴戞帴榪戠殑涓滆タ錛屾垜涓嶈兘紱佹鍦伴湶鍑鴻禐璧忕殑絎戝騫舵憞鏅冩垜鐨勮剳琚嬨?br />

]]> - 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>
using聽namespace聽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|
国产精品久久久久久五月尺|
欧美久久久久久午夜精品|
久久久久久无码国产精品中文字幕
|
亚洲一区中文字幕久久|