锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久午夜无码鲁丝片午夜精品,亚洲欧美另类日本久久国产真实乱对白,免费精品久久久久久中文字幕http://www.shnenglu.com/walkspeed/archive/2007/07/20/28448.htmlwalkspeedwalkspeedFri, 20 Jul 2007 09:15:00 GMThttp://www.shnenglu.com/walkspeed/archive/2007/07/20/28448.htmlhttp://www.shnenglu.com/walkspeed/comments/28448.htmlhttp://www.shnenglu.com/walkspeed/archive/2007/07/20/28448.html#Feedback2http://www.shnenglu.com/walkspeed/comments/commentRss/28448.htmlhttp://www.shnenglu.com/walkspeed/services/trackbacks/28448.htmlresulttype funname( arglist );
榪斿洖鍊肩被鍨?鍑芥暟鍚? 鍙傛暟鍒楄〃 );

鍦˙oost.Function涓紝鎴戜滑鍙互鏂逛究鐨勫畾涔夊畾涔夊嚱鏁板璞°備笉榪囧湪瀹氫箟鐢ㄦ潵琛ㄧず綾繪垚鍛樺嚱鏁扮殑鍑芥暟瀵硅薄鏃?br>絎竴涓弬鏁版槸綾繪寚閽堛傝屼笖鍦ㄨ皟鐢ㄦ椂錛岃浼犲叆涓涓被瀹炰緥鐨勬寚閽堛傝繖鏍風(fēng)敤璧鋒潵騫朵笉鏄緢鏂逛究錛屽洜涓鴻皟鐢ㄨ?br>瑕佺煡閬撶被瀹炰緥銆傝繖瀹為檯涓婃病鏈夊疄鐜拌В鑰︺傝岃В鑰︽槸鎴戜滑浣跨敤鍥炶皟鎴栧鎵樿璁$殑涓涓洰鏍囥?br>
涓轟簡(jiǎn)瑙e喅榪欎釜闂錛屾垜浠浣跨敤Boost.Bind搴?br>
Boost.Bind鏄竴涓嚱鏁板璞″伐鍘傘備粬鐢ㄦ潵浜х敓鎴戜滑闇瑕佺殑鍑芥暟瀵硅薄銆傚ソ浜?jiǎn)锛屾湁浜?jiǎn)瀹冿紝浣犲彲浠ュ湪浣犺璁′腑澶?br>閲忎嬌鐢˙oost.Function銆備笉鐢ㄥ啀鍘誨畾涔夌被鎴愬憳鍑芥暟褰㈠紡鐨勫嚱鏁板璞″暒錛屽彧鐢ㄥ畾涔夋櫘閫氬嚱鏁板璞°?br>
涓涓畝鍗曠殑渚嬪瓙

class CExample
{
public:
    bool printstr( const std::string &str )
    {
        std::cout << "CExample::printstr" << str << std::endl;
        return true;
    }
};

//瀹氫箟涓涓嚱鏁板璞?br>boost::function< bool ( const std::string& ) > printstr;

//鐢˙oost.Bind鍒涘緩涓涓嚱鏁板璞★紝璧嬬粰printstr
CExample example;
printstr = boost::bind( &CExample::printstr, &example, _1 );

濂戒簡(jiǎn)錛屾垜浠垱寤轟簡(jiǎn)涓涓嚱鏁板璞★紝鑰屼笖璋冪敤鏃朵笉鍐嶉渶瑕佺被瀹炰緥鎷夈傜敤Boost.Function鍜孊oost.Bind澶уぇ
鐨勭畝鍖栦簡(jiǎn)Command妯″紡鐨勫疄鐜般?br>
鍦ㄤ笂闈㈢殑渚嬪瓙涓涓彜鎬殑瀵硅薄"_1"銆傝繖涓彨鍋氱珯浣嶇錛屼粬浠h〃榪欎釜浣嶇疆鏈変釜鍙傛暟錛屼絾鐜板湪榪樹笉鐭ラ亾鍙?br>鏁版槸浠涔堛俖1浠h〃鍙傛暟鍒楄〃涓殑絎竴涓綅緗笂鐨勫弬鏁般侭oost.Bind涓鍏卞畾涔変簡(jiǎn)9涓珯浣嶇瀵硅薄銆傚涓?br>_1,_2,_3,_4,_5,_6,_7,_8,_9銆傚垎鍒唬琛ㄥ弬鏁板垪琛ㄤ腑浣嶅瓙銆?br>
Boost.Bind浜х敓鐨勫嚱鏁板璞″彲浠ョ洿鎺ヤ嬌鐢紝鍒╃敤涓婇潰鐨勪緥瀛愩?br>
bool b = boost::bind( &CExample::printstr, &example, _1 )( "Hello World" );




walkspeed 2007-07-20 17:15 鍙戣〃璇勮
]]>
Boost.Function鐨勫熀鏈嬌鐢?/title><link>http://www.shnenglu.com/walkspeed/archive/2007/07/18/28272.html</link><dc:creator>walkspeed</dc:creator><author>walkspeed</author><pubDate>Wed, 18 Jul 2007 05:28:00 GMT</pubDate><guid>http://www.shnenglu.com/walkspeed/archive/2007/07/18/28272.html</guid><wfw:comment>http://www.shnenglu.com/walkspeed/comments/28272.html</wfw:comment><comments>http://www.shnenglu.com/walkspeed/archive/2007/07/18/28272.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/walkspeed/comments/commentRss/28272.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/walkspeed/services/trackbacks/28272.html</trackback:ping><description><![CDATA[Boost.Function搴撶敤鏉ユ彁渚涗竴涓璞″寲鐨勫嚱鏁版寚閽堛?br><br>鍑芥暟鎸囬拡瀵硅璁″緢鏈夌敤銆傚畠浣胯皟鐢ㄨ呭彲浠ュ歡鏈熻皟鐢紝璋冪敤鏃舵満鐢辮皟鐢ㄨ呯‘瀹氥傝屼笖鍙互鏀瑰彉<br>鍝嶅簲鑰咃紝浠ュ簲瀵逛笉鍚岀殑瑕佹眰銆?br><br>C涓殑鍑芥暟鎸囬拡鍙兘鐢ㄤ簬鑷敱鍑芥暟銆傚湪C++涓櫎浜?jiǎn)鑷敱鍑芥暟杩樻湁鍑芥暟瀵硅薄鍜尵c繪垚鍛樺嚱鏁幫紝榪欎簺<br>C鐨勫嚱鏁版寚閽堟槸鏃犳硶鐢ㄧ殑銆傝繖瑕佹眰鑳介傚簲C++璇█鐨勫嚱鏁版寚閽堛傛棦鐒禖++璇█鏈韓娌℃湁鎻愪緵錛?br>閭e氨鎻愪緵涓涓簱銆俿tl鎻愪緵浜?jiǎn)锛屼絾鏄畾涔変簡(jiǎn)寰堝绫诲瀷锛屼娇鐢ㄨ典h潵騫朵笉鏄緢鏂逛究錛岃屼笖鍑芥暟鍙傛暟<br>鐨勪釜鏁拌闄愬畾鍦ㄤ袱涓互涓嬶紝鏇磋兘鏄鍙楅檺鍒躲侭oost.Function搴撴彁渚涗簡(jiǎn)涓涓ソ鐨勮В鍐蟲柟妗堛?br><br>Boost.Function搴撳彲浠ユ敮鎸佽嚜鐢卞嚱鏁幫紝鍑芥暟瀵硅薄錛岀被鎴愬憳鍑芥暟銆傝屼笖鍙傛暟涓暟澶氳揪10涓?br>Boost.Function搴撳埄鐢ㄦā鏉挎妧鏈潵瀹炵幇銆傜敓鎴愮殑浠g爜鏈夊緢楂樼殑榪愯鏁堢巼銆傛湰搴撳彲浠ヤ笉鐢ㄧ紪璇?br>鐩存帴浣跨敤銆?br><br>Boost.Function鐨勫ご鏂囦歡銆?br>function.hpp<br><br>瀹氫箟涓涓狟oost.Function鐨勫璞★紙鏄竴涓繑鍥炲肩被鍨嬩負(fù)int錛岀涓涓弬鏁版槸std::string綾誨瀷<br>絎簩涓弬鏁版槸float綾繪柊錛?br><br>boost::function< int ( std::string, float ) > funptr;<br><br>涓婇潰榪欎釜瀹氫箟鏂瑰紡鏄竴縐嶅鏄撶悊瑙g殑瀹氫箟鏂瑰紡銆備絾鏈変簺緙栬瘧鍣ㄤ笉鏀寔錛屽鏋滄兂鏇村鐨勭紪璇戝櫒<br>鏀寔錛屽垯鐢ㄤ笅闈㈣繖縐嶅畾涔夋柟寮?br><br>boost::function2< int, std::string, float > funptr;<br><br>娉ㄦ剰妯℃澘涓湁3涓被鍨嬶紝鑰宖unction綾誨嵈鏄痓oost::function2銆傚簲涓鴻繑鍥炲肩被鍨嬩笉璁$畻鍦ㄥ弬鏁?br>綾誨瀷涓紙鍘熷洜寰堢畝鍗曪紝C++鐨勭紪璇戝櫒涓嶄細(xì)鏍規(guī)嵁榪斿洖綾誨瀷涓嶅悓鏉ュ尯鍒嗗嚱鏁板畾涔夌殑涓嶅悓錛夈?br><br>int freefun( std::string str, float f )<br>{<br>    std::cout << str << " : " << f << std::endl;<br>    return 0;<br>}<br><br>class CFun<br>{<br>public:<br>    int operator() ( std::string str, float f )<br>    {<br>        std::cout << str << " : " << f << std::endl;<br>        return 0;  <br>    }<br>}<br><br>涓婇潰瀹氫箟浜?jiǎn)涓涓嚜鐢卞嚱鏁板拰涓涓嚱鏁板璞°備笅闈㈠皢鎶婁粬浠粯緇檉unction瀵硅薄銆?br><br>璧嬪間負(fù)鑷敱鍑芥暟<br>funptr = &freefun;<br><br>璧嬪間負(fù)鍑芥暟瀵硅薄<br>CFun fun;<br>funptr = fun;<br><br>浠ヤ笂涓ょ鎯呭喌鐨勮皟鐢ㄦ柟娉曚竴鑷達(dá)紝濡備笅<br>funptr( "float =", 10.0 );<br><br>Boost.Function瀵硅薄瑕佽兘鎸囧悜綾誨瀷鍘熷嚱鏁幫紝鍏跺畾涔夎濡備笅<br><br>class FreeClass<br>{<br>public:<br>    int out( std::string str, float f )<br>    {<br>        std::cout << str << " : " << f << std::endl;<br>        return 0;  <br>    }<br>};<br><br>boost::function< int ( FreeClass*, std::string, float ) > funptr;<br><br>璺ㄥ鉤鍙扮殑瀹氫箟鏂規(guī)硶<br>boost::function3< int, FreeClass*, std::string, float > funptr;<br><br>璧嬪兼柟娉?br>funptr = &FreeClass::out;<br><br>璋冪敤鏂規(guī)硶<br>FreeClass fc;<br><br>funptr( &fc, "float =", 10.0 );<br><br><br> <img src ="http://www.shnenglu.com/walkspeed/aggbug/28272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/walkspeed/" target="_blank">walkspeed</a> 2007-07-18 13:28 <a href="http://www.shnenglu.com/walkspeed/archive/2007/07/18/28272.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Signal涓敤鏉ョ鐞唖lot鐨勭鐞嗗櫒http://www.shnenglu.com/walkspeed/archive/2007/04/25/22803.htmlwalkspeedwalkspeedWed, 25 Apr 2007 07:18:00 GMThttp://www.shnenglu.com/walkspeed/archive/2007/04/25/22803.htmlhttp://www.shnenglu.com/walkspeed/comments/22803.htmlhttp://www.shnenglu.com/walkspeed/archive/2007/04/25/22803.html#Feedback1http://www.shnenglu.com/walkspeed/comments/commentRss/22803.htmlhttp://www.shnenglu.com/walkspeed/services/trackbacks/22803.htmlSignal浼?xì)瀹変紭鍏埦Uх殑涓嶅悓鏉ヨ皟鐢ㄤ笉鍚岀粍鐨?/span>slot銆傝繖鏍瘋姹?/span>signal鑳芥牴鎹笉鍚岀殑浼樺厛綰ф潵綆$悊slot緇勩傚吀鍨嬬殑瀹炵幇鏂規(guī)硶鏄敤std::map銆傚皢鍏跺畾涔変負(fù)濡備笅褰㈠紡std::map< int, slot >銆傜敱浜庢瘡涓紭鍏堢駭涓嬪彲鑳芥湁涓緇?/span>slot錛屾墍浠ヨ灝嗚繖涓緇?/span>slot緇勭粐鍒頒竴璧風(fēng)鐞嗭紝鍦?/span>boost signal涓嬌鐢?/span>std::list鏉ョ鐞嗭紝鍏跺彲鑳界殑褰㈠紡澶т綋濡備笅std::list< slot >銆傝繖鏍峰氨瑕佷慨鏀瑰垰鎵嶅畾涔夌殑map浜?jiǎn)锛屼慨鏀瑰悗鐨?/span>map鍙兘鐨勫畾涔夊涓?/span>std::map< int, std::list< slot > >銆?/span>

      鍦ㄥ疄闄呯殑boost signal涓茍娌℃湁鐩存帴鐨勫瓨鍌?/span>slot錛?/span>boost signal搴撲腑鏈変釜slot綾伙級(jí)錛岃屾槸瀛樺偍浜?/span>function錛?/span>boost function綾葷殑瀵硅薄錛夊璞°傝屼笖涓轟簡(jiǎn)鏂逛究鎺у埗signal涓?/span>function涔嬮棿鐨勮仈緋伙紝寮曞叆浜?/span>connection綾伙紝鐢ㄦ潵琛ㄧずsignal涓?/span>function涔嬮棿鐨勮仈緋匯?/span>Connection鐨勫璞″綋鐒跺拰涓涓?/span>function鏀懼湪浜?jiǎn)涓璧楓傝繖鏍?/span>boost signal鎻愪緵浜?jiǎn)涓涓?/span>connection_slot_pair綾繪潵瀛樺偍涓涓?/span>function涓?/span>connection瀵廣傝繖鏍峰湪boost signal涓竴涓?/span>slot緇勭殑瀹為檯瀹氫箟濡備笅std::list< connection_slot_pair >銆傚茍涓旇閲嶅畾涔変負(fù)group_list綾誨瀷錛?/span>typedef std::list<connection_slot_pair> group_list錛夈傜浉搴旂殑鍦?/span>boost signal涓?/span>map鐨勫疄闄呭畾涔夊涓?/span>std::map<stored_group, group_list, compare_type>錛屽茍涓旇閲嶅畾涔変負(fù)slot_container_type錛?/span>typedef std::map<stored_group, group_list, compare_type> slot_container_type錛夈傚皢浠ヤ笂鐨勮繖浜涗笢瑗跨粍緇囧埌涓涓被涓紝浠ヤ究浜庣鐞嗐傝繖涓被灝辨槸named_slot_map銆?/span>Signal涓湡姝g敤鏉ョ鐞?/span>slot鐨勭鐞嗗櫒銆?/span>

         Named_slot_map鐨勭被鏁版嵁鎴愬憳濡備笅瀹氫箟錛?/span>boost婧愮爜涓殑涓閮ㄥ垎錛屾暟鎹垚鍛橀儴鍒嗭級(jí)

 

class BOOST_SIGNALS_DECL named_slot_map

{

public:

typedef named_slot_map_iterator iterator;//named_slot_map瀹瑰櫒鐨勮凱浠e櫒

private:

typedef std::list<connection_slot_pair> group_list;//function connection瀵圭粍綾誨瀷

typedef std::map<stored_group, group_list, compare_type> slot_container_type;//瀹瑰櫒綾誨瀷

typedef slot_container_type::iterator group_iterator;//瀹瑰櫒榪唬鍣ㄧ被鍨?/span>

typedef slot_container_type::const_iterator const_group_iterator;

 

slot_container_type groups;//瀹氫箟涓涓敤鏉ョ鐞?/span>function connection緇勭殑瀹瑰櫒瀵硅薄

group_iterator back;//瀹瑰櫒鐨勮凱浠e櫒瀵硅薄

};

 

         Named_slot_map涔熸槸涓涓鍣ㄣ?/span>Stl鐨勫鍣ㄤ負(fù)浜?jiǎn)澶栫晫鏂逛究璁块棶瀹瑰櫒鍐呮暟鎹崟鍏冨Q屾彁渚涗簡(jiǎn)榪唬鍣ㄣ?/span>Named_slot_map涔熸湁鑷繁鐨勮凱浠e櫒銆傝繖涓凱浠e櫒灝辨槸named_slot_map_iterator綾匯?/span>Named_slot_map鎻愪緵浜?jiǎn)浠ヤ笅鏂规硶鏉ヨ幏寰棙q唬鍣?/span>iterator begin()錛?/span>iterator end()銆?/span>Begin鏂規(guī)硶鎻愪緵棣栬凱浠e櫒錛?/span>end鏂規(guī)硶鎻愪緵灝捐凱浠e櫒銆傚悜瀹瑰櫒涓彃鍏ユ暟鎹敤insert銆傛竻闄ゆ煇涓暟鎹敤鑰岃岀劧erase錛屾竻絀哄鍣ㄤ腑鐨勬墍鏈夋暟鎹敤clear銆?/span>



walkspeed 2007-04-25 15:18 鍙戣〃璇勮
]]>
鐢眘ignal鐨勪竴浜涗笢瑗胯仈鎯沖埌浜?jiǎn)AMhttp://www.shnenglu.com/walkspeed/archive/2007/04/24/22756.htmlwalkspeedwalkspeedTue, 24 Apr 2007 11:36:00 GMThttp://www.shnenglu.com/walkspeed/archive/2007/04/24/22756.htmlhttp://www.shnenglu.com/walkspeed/comments/22756.htmlhttp://www.shnenglu.com/walkspeed/archive/2007/04/24/22756.html#Feedback0http://www.shnenglu.com/walkspeed/comments/commentRss/22756.htmlhttp://www.shnenglu.com/walkspeed/services/trackbacks/22756.html銆銆boost signal涓殑signal鐨勬ā鏉垮弬鏁版槸涓嚱鏁扮被鍨嬨傚彲浠ュ皢鍏剁湅鎴愪竴涓帴鍙c俿ignal瀵硅薄渚濊禆榪欎釜鎺ュ彛錛岃屼笖鏄湁signal瀹氫箟鐨勩傚叿浣撶被鍘誨疄鐜伴晣欖傛瓕鎺ュ彛錛堝嵆瀹炵幇榪欎釜鍑芥暟綾誨瀷錛?br>銆銆signal鍜宻lot妗嗘灦緇勬垚浜?jiǎn)涓涓猳bserver妯″紡鐨勫疄鐜般俿ignal鏄嚭鐗堣咃紝slot鏄闃呰?

walkspeed 2007-04-24 19:36 鍙戣〃璇勮
]]>
濂囨簬signal涓殑slot綾葷殑鐢ㄩ?/title><link>http://www.shnenglu.com/walkspeed/archive/2007/04/23/22654.html</link><dc:creator>walkspeed</dc:creator><author>walkspeed</author><pubDate>Mon, 23 Apr 2007 08:57:00 GMT</pubDate><guid>http://www.shnenglu.com/walkspeed/archive/2007/04/23/22654.html</guid><wfw:comment>http://www.shnenglu.com/walkspeed/comments/22654.html</wfw:comment><comments>http://www.shnenglu.com/walkspeed/archive/2007/04/23/22654.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/walkspeed/comments/commentRss/22654.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/walkspeed/services/trackbacks/22654.html</trackback:ping><description><![CDATA[<p>銆銆鏈互涓簊lot灝辨槸琚玸ignal瀛樺偍騫剁鐞嗙殑slot銆備絾鏄氳繃瑙hboost鐨勬簮浠g爜鍙戠幇榪欎釜綾誨茍娌℃湁琚玸ignal鐩存帴綆$悊錛岃屼粎浠呯敤鏉ユ瀯閫犱簡(jiǎn)涓媍onnection銆傛病鏈夊彂鐜板叾浠栫殑鐢ㄩ斻傚鏋滆繖鏍鳳紝閭d負(fù)浣曚笉鐩存帴鍦╯ignal鐨刢onnect涓洿鎺ヨ繘琛宑onnection鐨勬瀯閫犲憿銆?br>銆銆signal鐨刢onnect鍑芥暟娌℃湁鐩存帴鎺ユ敹function瀵硅薄錛岃屾槸鎺ユ敹鐨剆lot<>瀵硅薄錛岃宻lot<>瀵硅薄鐢ㄦ潵鎺ユ敹function銆傝繖涓猣unction鐪嬫潵鏈繀涓瀹氭槸涓嚱鏁板璞′簡(jiǎn)銆傚彲浠ユ槸涓師濮嬪嚱鏁版垨綾誨嚱鏁頒簡(jiǎn)銆?榪欎釜鐚滄祴瑕佽瘉瀹炰簡(jiǎn)鎵嶈兘紜畾銆傚嵆渚垮姝わ紝榪欎釜綾葷殑浣滅敤鏄湁闄愮殑銆備笉榪囧叧浜庨偅涓猼ackeable鐨勭敤娉曡繕娌℃湁瀹屽叏楂樻竻妤氾紝鍙兘閭f槸榪欎釜綾誨瓨鍦ㄧ殑鐞嗙敱錛屼篃璁鎬互鍚庝細(xì)鏈変粈涔堢殑鍙戝睍銆備絾鐜板湪紜疄鐪嬩笉鍑轟粈涔堝ぇ鐨勭敤閫斻?br>銆銆濂囨簬涓轟綍鍦╯ignal涓殑slot綆$悊鍣紝涓嶅幓鐩存帴綆$悊slot<>鐨勫疄渚嬶紝鑰屾槸綆$悊connection鍜宖unction鐨刾air銆?/p> <p>銆銆涓漢瑙夊緱鍦╯lot<>涓殑鏈鏈夌敤澶勭殑鍑芥暟銆?br>void slot_base::create_connection()<br>{<br> basic_connection* con = new basic_connection();</p> <p> {<br>  con->signal = static_cast<void*>(this);<br>  con->signal_data = 0;<br>  con->blocked_ = false ;<br>  con->signal_disconnect = &bound_object_destructed;<br> }<br> <br> data->watch_bound_objects.reset(con);</p> <p> scoped_connection safe_connection(data->watch_bound_objects);</p> <p> for(std::vector<const trackable*>::iterator i = data->bound_objects.begin();<br>  i != data->bound_objects.end(); ++i) <br> {<br>  BOOST_SIGNALS_NAMESPACE::detail::bound_object binding;<br>  (*i)->signal_connected(data->watch_bound_objects, binding);</p> <p>  BOOST_SIGNALS_NAMESPACE::detail::auto_disconnect_bound_object disconnector(binding);</p> <p>  con->bound_objects.push_back(binding);<br>  disconnector.release();<br> }</p> <p> safe_connection.release();<br> data->watch_bound_objects.set_controlling(true);<br>}</p> <img src ="http://www.shnenglu.com/walkspeed/aggbug/22654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/walkspeed/" target="_blank">walkspeed</a> 2007-04-23 16:57 <a href="http://www.shnenglu.com/walkspeed/archive/2007/04/23/22654.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Metafunction 鍘熸搷浣?/title><link>http://www.shnenglu.com/walkspeed/archive/2007/04/07/21454.html</link><dc:creator>walkspeed</dc:creator><author>walkspeed</author><pubDate>Sat, 07 Apr 2007 08:20:00 GMT</pubDate><guid>http://www.shnenglu.com/walkspeed/archive/2007/04/07/21454.html</guid><wfw:comment>http://www.shnenglu.com/walkspeed/comments/21454.html</wfw:comment><comments>http://www.shnenglu.com/walkspeed/archive/2007/04/07/21454.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/walkspeed/comments/commentRss/21454.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/walkspeed/services/trackbacks/21454.html</trackback:ping><description><![CDATA[<p>        榪欐槸鎴戝湪鐪媌oost MPL鏃惰瘯鐫緲昏瘧鐨勪笢瑗匡紝鐜板湪璐翠笂鏉ャ?br><br>A metafunction is a class or a class template that represents a function invocable at compile-time. <br>涓涓師鎿嶄綔鏄湪緙栬瘧鍣ㄨ〃鐜頒簡(jiǎn)璋冪敤鎿嶄綔鐨勪竴涓被鎴栦竴涓ā鏉跨被銆?/p> <p>An non-nullary metafunction is invoked by instantiating the class template with particular template parameters (metafunction arguments); <br>涓涓潪鏃犲弬鐨勫師鎿嶄綔琚竴涓湁璇︾粏妯℃澘鍙傛暟鐨勬ā鏉跨被璇鋒眰錛?br>the result of the metafunction application is accessible through the instantiation's nested type typedef. <br>鍘熸搷浣滃簲鐢ㄧ殑榪斿洖鍊兼槸涓涓氳繃妯℃澘綾誨疄渚嬪彲鍙栫殑鍐呭祵鐨勭被鍨嬪畾涔夈?/p> <p>All metafunction's arguments must be types (i.e. only type template parameters are allowed). <br>鎵鏈夌殑鍘熸搷浣滅殑鍙傛暟蹇呴』鏄被鍨嬨?/p> <p>A metafunction can have a variable number of parameters. <br>涓涓師鎿嶄綔鑳芥湁涓涓暟閲忓彉鍖栫殑鍙傛暟</p> <p>A nullary metafunction is represented as a (template) class with a nested type typename member.<br>涓涓棤鍙傛暟鍘熸搷浣滆琛ㄧ幇涓烘湁鍐呭祵閲嶅懡鍚嶇被鍨嬬殑綾?/p> <p>鍘熸搷浣滅殑涓夌琛ㄨ揪寮忥紙f鏄竴涓師鎿嶄綔錛?br>1 f::type<br>2 f<>::type<br>3 f< a1,..,an >::type</p> <p><br>Lambda Expression 鏋勯犲拰鍒嗛厤琛ㄨ揪寮?/p> <p>A Lambda Expression is a compile-time invocable entity in either of the following two forms:<br>涓涓瀯閫犲拰鍒嗛厤琛ㄨ揪寮忔槸涓嬮潰涓や釜涓殑涓涓紪璇戞湡璋冪敤鍗曞厓</p> <p>Metafunction Class<br>鍘熸搷浣滅被</p> <p>Placeholder Expression <br>绔欎綅絎﹁〃杈懼紡</p> <p>Most of the MPL components accept either of those, and the concept gives us a consice way to describe these requirements.<br>澶ч儴鍒嗙殑MPL緇勪歡鎺ユ敹瀹冧滑鍏朵腑涓涓紝</p> <img src ="http://www.shnenglu.com/walkspeed/aggbug/21454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/walkspeed/" target="_blank">walkspeed</a> 2007-04-07 16:20 <a href="http://www.shnenglu.com/walkspeed/archive/2007/04/07/21454.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鐢╲ector鏉ヨ嚜鍔ㄧ敓鎴愮被http://www.shnenglu.com/walkspeed/archive/2007/04/07/21453.htmlwalkspeedwalkspeedSat, 07 Apr 2007 08:02:00 GMThttp://www.shnenglu.com/walkspeed/archive/2007/04/07/21453.htmlhttp://www.shnenglu.com/walkspeed/comments/21453.htmlhttp://www.shnenglu.com/walkspeed/archive/2007/04/07/21453.html#Feedback0http://www.shnenglu.com/walkspeed/comments/commentRss/21453.htmlhttp://www.shnenglu.com/walkspeed/services/trackbacks/21453.html        Modern C++ Design涓疄鐜頒簡(jiǎn)涓涓嚜鍔ㄧ敓鎴愮被鐨勬柟娉曘傚畠鐢ㄧ殑鏄疞oki涓殑TypeList銆傛垜鍦ㄨ繖閲屼嬌鐢ㄤ簡(jiǎn)boost MPL涓殑vector鏉ヤ綔涓虹被鍨嬬殑瀹瑰櫒銆傛寜boost MPL搴撶殑璁捐鐞嗗康錛屽叾浠栫殑綾誨瀷瀹瑰櫒涔熷簲璇ュ彲浠ュ埄鐢ㄨ繖閲岀殑瀹炵幇鐨勶紙娌℃湁璇曡繃錛屽彲鑳芥湁闂錛岀壒鍒槸map綾誨瀷瀹瑰櫒錛?br>
        瀹炵幇濡備笅錛堟敞錛氭垜宸插皢boost鐨勫ご鏂囦歡鏀懼埌浜?jiǎn)vc鐨刬nclude鐩綍涓級(jí)
  
    #include < boost/mpl/vector.hpp >
    #include < boost/mpl/front.hpp >
    #include < boost/mpl/pop_front.hpp >

    template< typename Type >
    struct Holder
    {
        Type value_;
    };

    template< typename TypeSequeue, template< typename > class Unit >
    struct TypeConstract : public Unit< typename boost::mpl::front< TypeSequeue >::type >,
                           public TypeConstract< typename boost::mpl::pop_front< TypeSequeue >::type,
                                                 Unit >
    {
    };

    template< template< typename > class Unit >
    struct TypeConstract< boost::mpl::vector<>::type, Unit >
    {
    };                                                                                                                                                                      



walkspeed 2007-04-07 16:02 鍙戣〃璇勮
]]>
boost搴撲腑mpl涓殑Data_Typeshttp://www.shnenglu.com/walkspeed/archive/2007/03/10/19538.htmlwalkspeedwalkspeedSat, 10 Mar 2007 06:10:00 GMThttp://www.shnenglu.com/walkspeed/archive/2007/03/10/19538.htmlhttp://www.shnenglu.com/walkspeed/comments/19538.htmlhttp://www.shnenglu.com/walkspeed/archive/2007/03/10/19538.html#Feedback0http://www.shnenglu.com/walkspeed/comments/commentRss/19538.htmlhttp://www.shnenglu.com/walkspeed/services/trackbacks/19538.html聽聽聽 boost搴撲腑MPL閮ㄥ垎鎻愪緵浜?jiǎn)Data_Types銆傚叾涓彁渚涗簡(jiǎn)瀵規(guī)暟瀛楃被鍨嬬殑涓涓獁rapper
聽聽聽 鏈変竴涓嬭繖涔堝嚑涓紝閮藉湪boost::mpl鍚嶅瓧絀洪棿涓?br />聽聽聽
聽聽聽 bool_ 鏄竴涓猙ool鍨嬬殑甯擱噺wrapper錛屽ご鏂囦歡 #include< boost/mpl/bool.hpp >
聽聽聽 int_聽 鏄竴涓猧nt鍨嬬殑甯擱噺wrapper錛屽ご鏂囦歡 #include< boost/mpl/int.hpp >
聽聽聽 long_ 鏄竴涓猯ong鍨嬬殑甯擱噺wrapper錛屽ご鏂囦歡 #include< boost/mpl/long.hpp >
聽聽聽 size_t 鏄竴涓猻td::size_t鍨嬬殑甯擱噺wrapper錛屽ご鏂囦歡 #include< boost/mpl/size_t.hpp >
聽聽聽 integral_c 鎻愪緵浜?jiǎn)瀵规暣迮炵殑涓涓氱敤wrapper錛屽ご鏂囦歡 #include< boost/mpl/integral_c.hpp >
聽聽聽
聽聽聽 榪欎簺甯擱噺鎻愪緵浜?jiǎn)濡備笅鐨勮兘鍔涘Q堝亣璁句竴涓父閲忕被鍨?n 錛?br />聽聽聽 鑾峰緱甯擱噺綾誨瀷鍖呭惈鐨勭被鍨?n::value_type
聽聽聽 鑾峰緱甯擱噺綾誨瀷鐨勭被鍨嬄犅犅犅?n::type
聽聽聽 鑾峰緱甯擱噺綾誨瀷鐨勫悸犅犅犅犅犅?n::value
聽聽聽 榪斿洖甯擱噺綾誨瀷鐨勫悸犅犅犅犅犅?n()
聽聽聽
聽聽聽 bool_閮ㄥ垎
聽聽聽
聽聽聽 bool_鐨勫0鏄庡涓?br />聽聽聽
聽聽聽 template< bool C >
聽聽聽 struct bool_;
聽聽聽
聽聽聽 搴撲腑瀹氫箟浜?jiǎn)涓や釜甯哥敤鐨刡ool鍨嬪父閲忥紝true_鍜宖alse_銆傚畾涔夊垎鍒涓?br />聽聽聽 typedef bool_< true > true_;
聽聽聽 typedef bool_< false > false_;
聽聽聽
聽聽聽 bool_鐗規(guī)у涓?br />聽聽聽 bool_< true >::value_type == bool
聽聽聽 bool_< true >::type == bool< true >
聽聽聽 bool_< true >::value == true
聽聽聽 bool_< true >() == true
聽聽聽
聽聽聽 int_閮ㄥ垎
聽聽聽
聽聽聽 int_鐨勫0鏄庡涓?br />聽聽聽
聽聽聽 template< int N >
聽聽聽 struct int_;
聽聽聽
聽聽聽 int_鐗規(guī)у涓?br />聽聽聽 int_< 10 >::value_type == int;
聽聽聽 int_< 10 >::type == int_< 10 >;
聽聽聽 int_< 10 >::value == 10;
聽聽聽 int_< 10 >() == 10;
聽聽聽
聽聽聽 long_閮ㄥ垎
聽聽聽
聽聽聽 long_鐨勫0鏄庡涓?br />聽聽聽
聽聽聽 template< long N >
聽聽聽 struct long_;
聽聽聽
聽聽聽 long_鐗規(guī)у涓?br />聽聽聽 long_< -500 >::value_type == long;
聽聽聽 long_< -500 >::type == long_< -500 >;
聽聽聽 long_< -500 >::value == -500;
聽聽聽 long_< -500 >() == -500;
聽聽聽
聽聽聽 size_t閮ㄥ垎
聽聽聽
聽聽聽 size_t鐨勫0鏄庡涓?br />聽聽聽
聽聽聽 template< std::size_t N >
聽聽聽 struct size_t;
聽聽聽
聽聽聽 size_t鐨勭壒鎬у涓?br />聽聽聽 size_t< 20 >::value_type == std::size_t;
聽聽聽 size_t< 20 >::type == size_t< 20 >;
聽聽聽 size_t< 20 >::value == 20;
聽聽聽 size_t< 20 >() == 20;
聽聽聽
聽聽聽 integral_c閮ㄥ垎
聽聽聽
聽聽聽 integral_c鐨勫0鏄庡涓?br />聽聽聽 template< typename T, T N >
聽聽聽 struct integral_c;
聽聽聽
聽聽聽 integral_c鐨勭壒鎬у涓?br />聽聽聽 integral_c< short, 8 >::value_type == short;
聽聽聽 integral_c< short, 8 >::type == integral_c< short, 8 >;
聽聽聽 integral_c< short, 8 >::value == 8;
聽聽聽 integral_c< short, 8 >() == 8;



walkspeed 2007-03-10 14:10 鍙戣〃璇勮
]]>
午夜精品久久影院蜜桃| 久久99国产精品久久99果冻传媒| 国产精品丝袜久久久久久不卡| 国产午夜精品久久久久九九| 久久久久亚洲精品无码网址| 热99RE久久精品这里都是精品免费| 无码超乳爆乳中文字幕久久| 超级碰久久免费公开视频| 一本色综合久久| 久久婷婷国产麻豆91天堂| 人妻无码αv中文字幕久久琪琪布| 国内精品久久久久| 国产aⅴ激情无码久久| 久久97久久97精品免视看秋霞| 欧美日韩精品久久久久| 成人国内精品久久久久影院VR| 免费精品久久天干天干| 久久99热这里只有精品国产| 久久久久无码精品国产| 久久精品免费全国观看国产| 久久国产精品-久久精品| 亚洲精品乱码久久久久久蜜桃图片| 精品久久久久久无码人妻热| 99国产精品久久| 久久久久亚洲精品天堂| 无码久久精品国产亚洲Av影片 | 国内精品久久久久影院网站| 久久精品中文字幕无码绿巨人| 国产精品久久久久蜜芽| 亚洲国产综合久久天堂| 欧美成a人片免费看久久| 久久国产精品视频| 久久久久久A亚洲欧洲AV冫| 国产精品狼人久久久久影院| 青青草国产精品久久久久| 国产精品禁18久久久夂久| 久久精品无码一区二区无码| 日韩人妻无码精品久久免费一| 亚洲国产精品高清久久久| 性高湖久久久久久久久| 久久99国产综合精品|