锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩一区精品,亚洲国产高潮在线观看,久久精品一区二区三区中文字幕 http://m.shnenglu.com/cpunion/category/59.htmlAS/C/C++/D/Java/JS/Python/Rubyzh-cnFri, 23 May 2008 09:10:28 GMTFri, 23 May 2008 09:10:28 GMT60涓篊錛嬶紜瀹炵幇涓涓狪DL銆錛堜簲錛?/title><link>http://m.shnenglu.com/cpunion/archive/2005/09/28/481.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Wed, 28 Sep 2005 14:57:00 GMT</pubDate><guid>http://m.shnenglu.com/cpunion/archive/2005/09/28/481.html</guid><wfw:comment>http://m.shnenglu.com/cpunion/comments/481.html</wfw:comment><comments>http://m.shnenglu.com/cpunion/archive/2005/09/28/481.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/cpunion/comments/commentRss/481.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cpunion/services/trackbacks/481.html</trackback:ping><description><![CDATA[鏈瘒娌′粈涔堟竻鏅扮殑鐩殑錛屽彧鏄В閲婁竴涓嬪墠闈㈢殑鍑犱釜闂錛屽茍鎻愬嚭涓浜涙柊鐨勭洰鏍囥?BR><BR>鍦ㄢ渁sgard欏圭洰閬楃暀闂鈥濅腑錛屾垜綆鍗曟彁鍒頒簡鍑犱釜闂錛屽茍涓旀兂浜嗕竴浜涜В鍐蟲柟妗堛?BR><BR>鍏朵腑錛屾渶棣栬瑙e喅鐨勬槸絎?鏉♀滄湇鍔″璞$殑澶у皬鈥濆拰絎?鏉♀滃叏灞鍏冧俊鎭濓紝榪?鏉″皢褰卞搷鍒拌皟鐢ㄦ満鍒躲乧all瀵硅薄鐨勭敓鎴愩備竴涓皟鐢ㄥ皢鐢熸垚涓涓猚all瀵硅薄錛岀敱綰跨▼姹犳潵澶勭悊錛屽悓姝ヨ皟鐢ㄥ皢鐢卞紓姝ヨ皟鐢ㄦ潵妯℃嫙銆?BR><BR>鍦╟all瀵硅薄涓紝淇濆瓨浜嗘墍鏈塱n/out鍙傛暟鐨勫寘瑁呭璞°傚綋澶勭悊鍚屾璋冪敤鏃訛紝鐢變簬out鍙傛暟鍙兘鏄竴涓爤涓婂璞★紙鎴栫畝鍗曠被鍨嬶紝榪欓噷緇熺О瀵硅薄錛夛紝鎵浠ラ渶瑕佸彟涓涓寘瑁呯被鈥斺攐utret妯℃澘綾伙紝瀹冧繚瀛榦ut鍙傛暟鐨勫紩鐢ㄣ?BR><BR>褰撳悓姝ヨ皟鐢ㄥ彂鐢熸椂錛岀敓鎴愪竴涓猚all瀵硅薄錛堝綋鐒秓ut鍙傛暟鐨勫紩鐢ㄥ凡緇忓寘鍚湪閲岄潰錛夛紝鎶婅繖涓猚all瀵硅薄浜ょ粰綰跨▼姹犲鐞嗭紝璋冪敤鐨勭嚎紼嬮樆濉炵瓑寰呰皟鐢ㄧ粨鏉熷悗琚敜閱掞紝榪欏氨鏄墍璋撶殑寮傛璋冪敤妯℃嫙鍚屾璋冪敤銆傜敱浜庡紓姝ヨ皟鐢ㄨ鍖呰璧鋒潵浜嗭紝鎵浠ュ湪璋冪敤鑰呯湅鏉ヨ窡鍚屾璋冪敤娌′粈涔堝尯鍒傚綋鐒惰繖涓姩浣滃茍闈炲繀瑕侊紝瀹屽叏鍙互涓嶄嬌鐢ㄦā鎷燂紝鑰岄噰鐢ㄧ湡姝g殑鍚屾璋冪敤錛屽彧鏄湅鍒癐CE鏄繖涔堝疄鐜扮殑錛屽績鐥掔棐鑰屽凡銆?BR><BR><BR>asgard鐨勭洰鏍囨槸鎶婄幇鏈夌殑緋葷粺鍔熻兘鍖呰鎴愪負鏈嶅姟錛屾墍浠ュ湪閫氱敤鏂歸潰鎴戣冭檻寰楁瘮杈冨銆?BR><BR>姣斿鏈嶅姟绔寮鏀句笅闈㈣繖鏍蜂竴涓湇鍔★細<BR><BR> <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">service StringService<BR>{<BR>    Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">(inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> strcat;<BR>    Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">(inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">uint</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> strncat;<BR>};</SPAN></DIV><BR>騫朵笖鎶奀鏍囧噯搴撲腑鐨剆trcat鍜宻trncat浣滀負榪?涓柟娉曠殑瀹炵幇銆?BR><BR>鐪嬩竴涓嬪瓨鍦ㄥ摢浜涢棶棰橈紵<BR><BR>1銆佸嚱鏁扮1涓弬鏁板鏋滅洿鎺ユ槧灝勪負string錛屽湪鏈嶅姟绔皢鍑虹幇緙撳啿鍖烘孩鍑恒?BR><BR>2銆丆鏍囧噯搴撲腑鐨剆trcat榪斿洖鍊兼槸涓涓寚閽堬紝瀹冩寚鍚憇trcat鐨勭涓涓弬鏁幫紙鎼炶繖涓爣鍑嗗簱鐨勪漢鏄笉鏄病鎯寵繃榪欎釜榪斿洖鍊煎涔堟病鐢ㄥ晩錛燂紵鐩存帴榪斿洖涓涓搷浣滅殑闀垮害涓嶆槸鏇村ソ錛燂級錛屽湪鏈嶅姟绔彂鍥炲鎴風鏃訛紝榪欎釜騫朵笉闇瑕佽鍙戝洖鏉ワ紝鍥犱負strcat鐨勭1涓弬鏁板凡緇忚兘甯﹀洖鎿嶄綔鍚庣殑鍐呭浜嗐?BR><BR>3銆乻trncat鐨勭3涓弬鏁拌〃紺虹1涓紦鍐插尯鍙傛暟鐨勯暱搴︼紝濡傛灉鑳芥妸瀹冨拰絎?涓弬鏁板悎璧鋒潵鐢ㄤ竴涓猙uffer瀵硅薄琛ㄧず錛屽氨鑳界渷浜嬩簡銆?BR><BR>鐞嗘兂鎯呭喌涓嬶紝鎴戜滑鐨勬湇鍔″璞¤繖鏍鋒潵鍐欙細<BR><BR> <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">service StringService<BR>{<BR>    Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> buffer</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> strcat;<BR>    Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> buffer</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> strncat;<BR>};</SPAN></DIV><BR>鎴戜滑鐨勭洰鐨勬槸鎶婅佺殑浠g爜鍖呰鎴愭柊椴滄椂楂︾殑鏈嶅姟錛屽綋鐒朵笉鐢ㄤ繚鐣欒佸紡浠g爜涓殑鎸囬拡錛屼互鍙婁嬌鐢ㄦ寚閽堝拰闀垮害2涓兼潵琛ㄧず涓涓紦鍐插尯鐨勫仛娉曘俠uffer綾誨湪鏋勯犳椂瑕佹帴鍙椾竴涓猻ize_t鍙傛暟錛屾寚瀹氱紦鍐插尯鐨勫ぇ灝忋?BR><BR>榪欏湪鏈嶅姟绔皢浜х敓鏄犲皠闂錛岀敱浜庤繖涓狹ethod瀹氫箟鐨勫艦寮忓拰C鏍囧噯搴撲腑鐨勫嚱鏁板艦寮忎笉涓鑷淬?BR><BR>鎴戞兂搴旇鍘誨疄鐜頒竴涓傞厤鍣ㄦā鏉跨被錛屾瘮濡傦細<BR><BR> <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: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">strcat.setFunction (adapter</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">), convert</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">(inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> buffer</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">> (::strcat)</SPAN><SPAN style="COLOR: #000000">);<BR><BR></SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">strncat.setFunction (adapter</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">, size_t), convert</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">(inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> buffer</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, length</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">uint</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">> (::strncat)</SPAN><SPAN style="COLOR: #000000">);</SPAN></DIV><BR>convert<void, 0>琛ㄧず鎶婄0涓弬鏁幫紙榪欓噷鎸囪繑鍥炲鹼級杞垚void綾誨瀷錛宭ength<in<uint>, 1>琛ㄧず榪欎釜鍙傛暟綾誨瀷鏄痠nt<uint>錛屽畠鏄粠絎?涓弬鏁頒腑鎻愬彇鐨勯暱搴︼紝澶ц嚧灝辨槸浣跨敤榪欑瑙勫垯錛岃娉曞彲鑳戒互鍚庝細鏈夊彉鍔ㄣ?BR><BR>榪欑偣鍐呭鏄垜鍑犱釜鏈堝墠灝卞湪鑰冭檻鐨勶紝涔熸槸鎴戞兂鍋氳繖涓」鐩殑鍔ㄦ満錛屼笉榪囩洿鍒版渶榪戜竴孌墊椂闂存墠浠庡彲琛屾ф柟闈粩緇嗚冭檻銆?BR><BR>閫氳繃鍓嶉潰鍑犱釜妯℃澘鐨勭粌涔狅紝鐜板湪宸茬粡澶ц嚧鐭ラ亾鍝簺涓滆タ鏄彲浠ョ敤妯℃澘鍋氬嚭鏉ワ紝鍝簺涓嶈兘浣跨敤妯℃澘錛岃繖搴旇鏄渶澶х殑鏀惰幏浜嗐傚緢澶氫笢瑗垮崟闈犳ā鏉挎垨鏄櫄鍑芥暟閮戒笉濂藉畬鎴愶紝浣嗙粨鍚堣搗鏉ュ氨鑳戒駭鐢熸剰鎯充笉鍒扮殑鏁堟灉銆?BR><BR> <HR> <BR>鍙堜粩緇嗘兂浜嗕竴涓嬶紝涓婇潰鐨勪唬鐮佸簲璇ヨ繕鍙互淇敼綆鍖栵細<BR><BR> <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: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">strcat.setFunction (adapter</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">convert</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">(inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> buffer</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> ( ) (::strcat));<BR><BR></SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">strncat.setFunction (adapter</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">convert</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">(inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> buffer</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, length</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">uint</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> ( ) (::strncat));</SPAN></DIV><BR>浣跨敤涓涓豢鍑芥暟鏉ュ仛錛屽嚱鏁版寚閽堢殑綾誨瀷鍙互浠巓perator ()鐨勫弬鏁幫紙妯℃澘鍙傛暟錛変腑鎺ㄥ鍑烘潵銆?img src ="http://m.shnenglu.com/cpunion/aggbug/481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-28 22:57 <a href="http://m.shnenglu.com/cpunion/archive/2005/09/28/481.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>asgard欏圭洰閬楃暀闂銆錛?005-09-27鏇存柊錛?/title><link>http://m.shnenglu.com/cpunion/archive/2005/09/24/416.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Sat, 24 Sep 2005 09:00:00 GMT</pubDate><guid>http://m.shnenglu.com/cpunion/archive/2005/09/24/416.html</guid><wfw:comment>http://m.shnenglu.com/cpunion/comments/416.html</wfw:comment><comments>http://m.shnenglu.com/cpunion/archive/2005/09/24/416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/cpunion/comments/commentRss/416.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cpunion/services/trackbacks/416.html</trackback:ping><description><![CDATA[asgard欏圭洰宸茬粡鍑嗗浜嗕竴孌墊椂闂翠簡錛屼笉榪囨湁浜涘熀鏈棶棰樿繕闇瑕佽冭檻錛屼篃鏈変竴浜涙槸鏂板彂鐜扮殑闂錛屼互鍙婅嚜璁や負姣旇緝濂界殑瑙e喅鍔炴硶銆?BR><BR>閫氳繃絎?銆佺4鏉$殑浠旂粏鐮旂┒錛屽凡緇忔笎娓愬畬鍠勩佹槑紜簡鍔ㄦ侀儴鍒嗗拰闈欐侀儴鍒嗙殑鍏崇郴錛屼嬌寰桵ethod鍖呰綾繪墍瀹屾垚鐨勫姛鑳芥笎娓愭帴榪戜簬涓涓嚱鏁幫紝鑰屽厓淇℃伅鍒欒劚紱誨叿浣撶殑瀵硅薄鎻愬崌鍒板叏灞錛堝綋鐒惰繕鏈変簺灝忛棶棰樻病鏈夎В鍐籌級銆?BR><BR><STRONG>1銆佸弬鏁板悕縐扮殑闂銆?/STRONG><BR><BR>涓轟簡涓嶴OAP絳夊熀浜嶺ML鐨勫崗璁吋瀹癸紝蹇呴』寮濮嬪氨鎶婂弬鏁板悕縐拌冭檻鍦ㄥ唴銆?BR><BR>浠g爜緇忚繃C錛嬶紜緙栬瘧鍣ㄧ紪璇戜互鍚庯紝綾誨瀷銆佸彉閲忓悕縐扮瓑閮戒笉澶嶅瓨鍦紝鍞竴鐣欎笅鐨勬槸RTTI錛屾樉鐒朵笉鑳借В鍐寵繖涓棶棰樸傛墍浠ュ彧鑳藉湪瀹氫箟鏃舵妸瀹冨姞鍏ャ?BR><BR> <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">BEGIN_SERVICE(TestService)<BR>    METHOD (</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">), method1, index, info, result);<BR>END_SERVICE()</SPAN></DIV><BR>濡傛灉浣跨敤榪欑鏂瑰紡錛宨ndex, info, result鍒嗗埆琛ㄧず鍙橀噺鍚嶅瓧錛屽湪瀹忛噷闈㈣漿鎴愬瓧絎︿覆錛岀湅璧鋒潵濂藉儚涓嶅お鑸掓湇錛岃屼笖瀹忎笉鏀寔鍙傛暟涓暟鍙樺寲銆?BR><BR> <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">BEGIN_SERVICE(TestService)<BR>    METHOD (</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">), method1, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">(index, info, result)</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>    METHOD (</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">), method2, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">result(index, info)</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>END_SERVICE()</SPAN></DIV><BR>榪欑鍙兘紼嶇◢鑸掓湇涓鐐癸紝鍦∕ethod鏋勯犲嚱鏁版垨鍏跺畠鍦版柟瑙f瀽榪欎釜瀛楃涓詫紝璧嬬粰鍚勪釜鍙傛暟銆備笉榪囧畠鐨勭己鐐規槸鎶婄紪璇戞湡搴旇媯鏌ュ嚭鏉ョ殑閿欒錛屽歡榪熷埌榪愯鏈熴傚鏋滃湪緙栬瘧鏈熸潵鍋氾紝鍙堜細浣挎帴鍙f弿榪板彉寰楀緢澶嶆潅銆?BR><BR>鍙槸涓轟簡寰楀埌鍙傛暟鐨勫悕瀛楋紝灝辮澧炲姞榪欎箞浜涢夯鐑︺?BR><BR>c++0x鍙槸涓涓簱鐨勬爣鍑嗭紝浼拌XTI涔熶笉浼氬姞鍏ヨ繖浜涚壒鎬э紝鑰屼笖c++0x寰堥仴榪滐紝鎵浠ユ殏鏃朵互榪欑鏂瑰紡鏉ュ仛銆?BR><BR><STRONG>鏆傛椂鐨勮В鍐沖姙娉曪細</STRONG><BR><BR> <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">BEGIN_SERVICE(TestService)<BR>    METHOD (</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">), method1);<BR>    METHOD (</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">), method2);<BR>    BEGIN_SERVICE_DEFINE(TestService)<BR>        METHOD_DEFINE (method1, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">(index, info, result)</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, test_func);<BR>        METHOD_DEFINE (method2, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">result(index, info)</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test_method);<BR>    END_SERVICE_DEFINE()<BR>END_SERVICE()</SPAN></DIV><BR>緙虹偣鏄弬鏁板悕縐頒腑鐨勯敊璇紝瑕佸歡榪熷埌榪愯鏈熸墠鑳借В鍐蟲帀銆?BR><BR><STRONG>2銆佹湇鍔″璞$殑澶у皬銆?BR></STRONG><BR>濡傛灉瀹㈡埛绔璋冪敤鍏朵腑涓涓柟娉曪紝鐢熸垚涓涓猅estService錛屽垯鏋勯犳垚鏈お楂橈紝鐗瑰埆鏄竴涓湇鍔′腑鏈夊涓柟娉曠殑鏃跺欍備竴涓湇鍔″綰充簡澶氫釜鏂規硶錛岃屾瘡涓柟娉曞寘鍚竴涓獀ector錛屼互鍙婂悇涓弬鏁幫紝榪欒繕娌¤冭檻浠ュ悗鐨勬墿灞曘?BR><BR>鎵浠ュ簲璇ヤ慨鏀硅皟鐢ㄦ柟寮忥紝璁╁畠鍙彧闇瑕佺敓鎴愯皟鐢ㄦ墍闇鐨勬渶灝忥紙灝戯級瀵硅薄銆?BR><BR>榪欓儴鍒嗚冭檻榪樹笉鎴愮啛錛屾殏鏃跺彲浠ヤ笉綆″畠錛岃屼互鏂規硶浣滀負鑰冭檻鐨勫璞°?BR><BR><STRONG>鏆傛椂鎯沖埌鐨勮В鍐沖姙娉曪細</STRONG><BR><BR>Method瀵硅薄涓殑parameters瀹瑰櫒鍜屽悇涓弬鏁幫紝鍙湪璋冪敤operator ()鎴朼sync_call鏃訛紝鎵嶇湡姝g敓鎴愬嚭鏉ャ?BR><BR>榪欐牱鐨勮瘽錛孧ethod瀵硅薄涓粎淇濆瓨涓涓┖鐨剉ector銆?BR><BR>鐢氳嚦榪欎釜vector涔熷彲浠ュ彧鏄竴涓┖鎸囬拡錛屽綋璋冪敤閭e嚑涓嚱鏁版椂錛屾墠鐢熸垚涓涓?BR><BR>鏆傛椂鎶婅繖涓繃紼嬪懡鍚嶄負Create On Call(COC)銆?BR><BR>COC鐨勫ソ澶勬槸鏄捐屾槗瑙佺殑錛屾瘡涓璞″皢鍙湁8瀛楄妭錛岃櫄琛ㄦ寚閽堬紜鏁版嵁瀵硅薄鐨勬寚閽堬紝鈥滄暟鎹璞♀濇槸瀹為檯璋冪敤鏃舵墠鐢熸垚鐨勫璞★紝鍖呮嫭鍙傛暟vector瀹瑰櫒銆佸洖璋冨嚱鏁版寚閽堬紙鍙兘鐢卞姩鎬佺敓鎴愪竴涓鎵樺璞★紝浠ラ傚簲騫挎硾綾誨瀷鐨勫洖璋冨嚱鏁幫級銆佸璞¢攣錛堥槻姝㈠共鎵板埌鍓嶄竴涓皟鐢級銆傚垵濮嬪寲鎴愭湰鎺ヨ繎0錛堣櫄鍑芥暟琛ㄧ殑鍒濆鍖栧拷鐣ヤ笉璁★級銆?BR><BR>褰撹皟鐢╫perator()鎴朼sync_call鏃訛紙浠ヤ笅綆縐癈ALL錛夛紝灝嗚皟鐢╟reate_parameters铏氬嚱鏁幫紝鍔ㄦ佺敓鎴愪竴涓獀ector銆傝繖鏍鳳紝娌℃湁璋冪敤鍒扮殑Method涓嶄細璞″師鏉ヤ竴鏍峰獎鍝嶅埌鏈嶅姟瀵硅薄鐨勬瀯寤烘ц兘銆?BR><BR>榪欏氨瑕佹眰鎶奙ethod鐨勨滃厓鈥濅俊鎭彁鍒板叏灞錛屽綋鐒舵洿絎﹀悎鈥滃厓鈥濈殑鏈剰錛屽師鏉ョ敱鏈嶅姟瀵硅薄鏌ヨMethod浠ヨ幏寰椻滃厓鈥濅俊鎭殑榪囩▼錛岀幇鍦ㄧ湅鏉ヤ篃鏄笉鍚堢悊鐨勩?BR><BR><STRONG>3銆乮n妯℃澘鍙互鐪佺暐銆?/STRONG><BR><BR>in鏄粯璁ょ殑鍙傛暟綾誨瀷錛岃繑鍥炲煎垯榛樿涓簅ut綾誨瀷錛岃繖閮芥槸涓嶉渶瑕佹槑紜寚瀹氱殑銆?BR><BR><STRONG>瑙e喅鍔炴硶錛?BR></STRONG><BR>榪欎釜闂鏄瘮杈冨ソ瑙e喅鐨勶紝鍦↖nOutTypeTraits妯℃澘綾諱腑錛屼負鍚勪釜鍋忕壒鍖栫増鏈畾涔変竴涓猼ype綾誨瀷錛孖nOutTypeTraits錛淭錛?:type鐨勭被鍨嬩負in錛淭錛烇紝InOutTypes錛渋n錛淭錛烇紴::type鐨勭被鍨嬩負in錛淭錛烇紝InOutTypes錛渋nout錛淭錛烇紴::type鐨勭被鍨嬩負inout錛淭錛烇紝InOutTypes錛渙ut錛淭錛烇紴::type鐨勭被鍨嬩負out錛淭錛烇紝InList妯℃澘綾諱腑榪涜榪欑杞崲銆?BR><BR><STRONG>4銆佸紓姝ヨ皟鐢ㄩ槦鍒椼?/STRONG><BR><BR>鍦ㄧ2鐐逛腑浠嬬粛閬擄細<BR><BR>姣忎釜瀵硅薄灝嗗彧鏈?瀛楄妭錛岃櫄琛ㄦ寚閽堬紜鏁版嵁瀵硅薄鐨勬寚閽堬紝鈥滄暟鎹璞♀濇槸瀹為檯璋冪敤鏃舵墠鐢熸垚鐨勫璞★紝鍖呮嫭鍙傛暟vector瀹瑰櫒銆佸洖璋冨嚱鏁版寚閽堬紙鍙兘鐢卞姩鎬佺敓鎴愪竴涓鎵樺璞★紝浠ラ傚簲騫挎硾綾誨瀷鐨勫洖璋冨嚱鏁幫級銆佸璞¢攣錛堥槻姝㈠共鎵板埌鍓嶄竴涓皟鐢級銆傚垵濮嬪寲鎴愭湰鎺ヨ繎0錛堣櫄鍑芥暟琛ㄧ殑鍒濆鍖栧拷鐣ヤ笉璁★級銆?BR><BR>鎻愬埌浜嗗璞¢攣錛岃繖鏄竴縐嶄綆鏁堢殑鍋氭硶錛屽彲浠ヤ嬌鐢ㄥ紓姝ヨ皟鐢ㄩ槦鍒楁潵鏇夸唬瀹冦?BR><BR><STRONG>瑙e喅鍔炴硶錛?/STRONG><BR><BR>褰撳紑濮嬩竴涓皟鐢ㄦ椂錛屼復鏃剁敓鎴愪笂闈㈡墍璇寸殑鈥滄暟鎹璞♀濓紝浜ょ敱涓涓皟鐢ㄩ槦鍒楀幓瀹屾垚銆傝繖鏃訛紝鐢變簬Method瀵硅薄鍩烘湰涓嶇鐞嗘暟鎹紝鎵浠ュ畠鎴愪簡涓涓┖澹籌紝浣滅敤鏄繚瀛樼被鍨嬩俊鎭?BR><BR>寮傛璋冪敤鏈濂界殑瀹炵幇灝辨槸鏁翠釜緋葷粺閮界敱寮傛璋冪敤鏋勬垚錛岃屽悓姝ヨ皟鐢ㄦ槸鐢卞紓姝ヨ皟鐢ㄦā鎷熻屾垚銆傚師鏈墦綆楃粫榪囪繖縐嶆柟寮忥紝鐢ㄦ渶綆鍗曠殑鏂規硶鏉ュ仛錛岀幇鍦ㄥソ鍍忓張緇曞洖鏉ヤ簡銆?BR><BR>涓婇潰榪欎釜鍋氭硶錛屽緢濂藉湴鎶婂厓淇℃伅鍜岀湡瀹炴暟鎹垎寮浜嗭紝鎵浠ユ墦綆楁敼鎴愯繖縐嶇粨鏋勩?BR><BR>5銆佸叏灞鍏冧俊鎭?BR><BR>閫氳繃絎?鏉$殑鐮旂┒錛屽凡緇忎嬌寰桵ethod瀵硅薄鎴愪負涓涓┖澹籌紝鑰屸滄暟鎹璞♀濆湪娌℃湁璋冪敤鏃跺張涓嶇敓鎴愶紝浣垮緱鑷渷緇撴瀯蹇呴』閲嶆柊鍋氥?BR><BR>鑰冨療浜唈ava絳夎璦鐨勮嚜鐪侊紝涔熸墦綆楁妸鍏冧俊鎭殑浣嶇疆鎻愬崌鍒板叏灞錛岃屾瘡涓狹ethod瀵硅薄灝嗗彧淇濈暀涓涓叏灞鍏冧俊鎭殑鎸囬拡錛岃繖鏍峰簲璇ユ洿鑷劧銆?BR><BR><BR>錛堜互鍚庨亣鍒扮殑闂鍙洿鏂板埌榪欎釜鏂囨。涓級<img src ="http://m.shnenglu.com/cpunion/aggbug/416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-24 17:00 <a href="http://m.shnenglu.com/cpunion/archive/2005/09/24/416.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓篊錛嬶紜瀹炵幇涓涓狪DL銆錛堝洓錛?/title><link>http://m.shnenglu.com/cpunion/archive/2005/09/22/383.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Thu, 22 Sep 2005 11:13:00 GMT</pubDate><guid>http://m.shnenglu.com/cpunion/archive/2005/09/22/383.html</guid><wfw:comment>http://m.shnenglu.com/cpunion/comments/383.html</wfw:comment><comments>http://m.shnenglu.com/cpunion/archive/2005/09/22/383.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://m.shnenglu.com/cpunion/comments/commentRss/383.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cpunion/services/trackbacks/383.html</trackback:ping><description><![CDATA[濡傘婁負C錛嬶紜瀹炵幇涓涓狪DL錛堜笁錛夈嬩竴鏂囦腑鎵璇達紝榪樺墿鏈鍚庝竴涓棶棰橈紝榪樻槸浣跨敤鍓嶉潰鐨勬祴璇曚唬鐮佽鏄庛?BR><BR>async_call鍑芥暟鐨勫師鍨嬫槸錛?BR><BR> <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">typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">);<BR><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> v0, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000"> v1, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000"> v2, FUNC_TYPE func);</SPAN></DIV><BR>榪欐槸妯℃澘綾繪牴鎹甶n/out鏉ヤ駭鐢熺殑銆?BR><BR>鍦ㄥ紓姝ヨ皟鐢ㄤ腑錛屽弬鏁版槸鍜屾搷浣滀繚瀛樺湪涓璧風殑錛屽洜涓鴻浜ょ粰綰跨▼澶勭悊銆傚墠闈㈠凡緇忚榪囷紝Method妯℃澘綾諱腑灝嗕繚鏈夎繖浜涘弬鏁幫紝Method鐨勫畾涔夊涓嬶紙浠ヤ緥瀛愪腑4涓弬鏁扮殑鐗瑰寲鐗堟湰鏉ヨ鏄庯級錛?BR><BR> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> B, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> C, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> D</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(A,B,C,D)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> : </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> typename Loki::TL::MakeTypelist</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> A,B,C,D </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    A a;<BR>    B b;<BR>    C c;<BR>    D d;<BR>    Method ()<BR>    {<BR>        parameters.push_back (</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">a);<BR>        parameters.push_back (</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">b);<BR>        parameters.push_back (</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">c);<BR>        parameters.push_back (</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">d);<BR>    }<BR>};</SPAN></DIV><BR>鐩稿簲鍦幫紝Base綾諱嬌鐢ㄨ繖涓壒鍖栫増鏈細<BR><BR> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> TYPES, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> IN_TYPES</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">TYPES, IN_TYPES, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> : </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> IMethod<BR>{<BR>    typedef typename FuncTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">TYPES</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result FUNC_TYPE;<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0, <BR>        typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1, <BR>        typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v2, <BR>        FUNC_TYPE func </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">)<BR>    {<BR>    }<BR>};</SPAN></DIV><BR>TYPES妯℃澘鍙傛暟涓繚瀛樹簡鎵鏈夌殑鍙傛暟綾誨瀷錛孖N_TYPES妯℃澘鍙傛暟涓繚瀛樹簡鎵鏈夌殑in鍙傛暟綾誨瀷錛屼絾瀹冧滑涓嶇煡閬撳浣曟潵瀵瑰簲璧鋒潵錛宎sync_call涔熶笉鐭ラ亾濡備綍鎶婂嚑涓弬鏁板間氦緇檖arameters錛堝湪IMethod涓畾涔夛紝瑙佷笂涓綃囷級銆?BR><BR>濡傛灉鎴戜滑鍦ㄧ敓鎴怚N_TYPES鐨勬椂鍊欙紝鎶婂畠鍦═YPES涓殑浣嶇疆錛堢儲寮曪級涔熶竴璧蜂氦緇欏畠錛屽氨鑳借В鍐寵繖涓棶棰樸?BR><BR>InList絎簩涓ā鏉垮弬鏁版槸涓涓父閲忥紝褰撴垜浠妸TYPES浜ょ粰瀹冩椂錛屼互涓婇潰鐨勪唬鐮佷負渚嬶紝灝嗕細浣跨敤T_COUNT鍊間負4鐨勫亸鐗瑰寲鐗堟湰銆傝繖鏃跺欙紝灝嗕細棣栧厛鎺ㄥ鍑篒N_TYPES涓殑絎竴涓被鍨媔nt錛屽畠鍦↖N_TYPES涓殑绱㈠紩鏄?錛屽茍鎺ョ潃璋冪敤T_COUNT鍊兼槸3鐨勫亸鐗瑰寲鐗堟湰錛岃繖鏍烽掑綊鎺ㄥ錛岀洿鍒拌皟鐢═_COUNT鍊間負0鐨勫亸鐗瑰寲鐗堟湰錛岃繖涓繃紼嬪氨緇撴潫浜嗐傚湪榪欎釜閫掑綊榪囩▼涓紝鑳藉寰楀埌鍚勪釜綾誨瀷浠ュ強瀵瑰簲鐨勨滅儲寮曗濆鹼細int: 4, char: 3, string: 2銆?BR><BR>娉ㄦ剰榪欎釜绱㈠紩鍊煎拰瀹為檯鐨勭儲寮曞兼槸鏈夊樊鍒殑錛屽疄闄呯殑绱㈠紩鍊煎簲璇ユ槸4-T_COUNT錛屾墍浠ヤ笂闈㈢殑瀵瑰簲鍏崇郴搴旇鏄細int: 0, char: 1, string: 2銆?BR><BR>鏈鍒濅紶閫掔粰InList鐨凾YPES鏈?涓厓绱狅紝褰撳畠閫掑綊璋冪敤鏃訛紝榪欎釜鍊煎氨浼氫緷嬈¢掑噺錛屽悗闈㈢殑閫掑綊璋冪敤騫朵笉鐭ラ亾搴旇鐢?鍘誨噺鎺塗_COUNT浣滀負绱㈠紩錛屽洜涓?騫舵病鏈変紶閫掕繃鏉ャ傜畝鍗曠殑瑙e喅鍔炴硶鏄啀鍔犱笂涓涓ā鏉垮弬鏁幫紝璁╁畠寰涓嬩紶閫掞紝褰撶劧榪欑鏂瑰紡騫朵笉濂界湅錛屽ソ鍦ㄦ垜浠笉鏄湡鐨勫繀欏昏繖涔堝仛銆?BR><BR>娉ㄦ剰錛屽湪Base綾諱腑錛屽畠鏄煡閬揟YPES鐨勪釜鏁扮殑錛岄偅涔堝彧瑕佺敤榪欎釜鏁板噺鍘誨墠闈㈢敓鎴愮殑IN_TYPE鐨勨滅儲寮曗濓紝灝辮兘寰楀埌榪欎釜綾誨瀷鍦═YPES涓殑鐪熸绱㈠紩銆傦紙榪欓儴鍒嗙湡鏄湁鐐圭綏鍡︼級<BR><BR>淇敼InList妯℃澘綾伙紝璁╁畠鐢熸垚鐢?FONT style="BACKGROUND-COLOR: #a9a9a9" color=#a9a9a9> </FONT><FONT style="BACKGROUND-COLOR: #a9a9a9">[ in綾誨瀷浠ュ強in綾誨瀷鍦═YPES涓殑鈥滅儲寮曗漖 </FONT>鏋勬垚鐨勬柊Typelist銆?BR><BR>棣栧厛瑕佸鍔犱竴涓緟鍔╂ā鏉跨被錛?BR><BR> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T, </SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> INDEX</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> TypeReversedIndex<BR>{<BR>    typedef T type;<BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {value </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> INDEX};<BR>};</SPAN></DIV><BR>瀹冭兘澶熶繚瀛樹竴涓被鍨嬶紝浠ュ強涓涓暣鏁般傚彇鍚嶄負TypeReversedIndex錛屾剰鎬濇槸璇村畠瑕佷繚瀛樹竴涓猅ype鍜屼竴涓猂eversedIndex錛堝弽鐨勭儲寮曪級銆?BR><BR>InList妯℃澘綾諱篃瑕佷慨鏀癸紝OutList渚濇棫鏄厤璐硅禒閫侊細<BR><BR> <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"> </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T, </SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> T_COUNT </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> Loki::TL::Length </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::value </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InList<BR>{<BR>    typedef typename If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"><BR>        InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">typename T::Head</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::isin,<BR>        typename Loki::Typelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> TypeReversedIndex </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">typename T::Head, T_COUNT</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, typename InList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">typename T::Tail</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, <BR>        typename InList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">typename T::Tail</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result<BR>    </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};<BR><BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef typename Loki::TL::MakeTypelist </SPAN><SPAN style="COLOR: #000000"><></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T, </SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> T_COUNT </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> Loki::TL::Length </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::value </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> OutList<BR>{<BR>    typedef typename If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"><BR>        InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">typename T::Head</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::isout,<BR>        typename Loki::Typelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> TypeReversedIndex </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">typename T::Head, T_COUNT</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, typename OutList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">typename T::Tail</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, <BR>        typename OutList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">typename T::Tail</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result<BR>    </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};<BR><BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> OutList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef typename Loki::TL::MakeTypelist </SPAN><SPAN style="COLOR: #000000"><></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};</SPAN></DIV><BR>Base綾誨氨鍙互鍐欏嚭鏉ヤ簡錛?BR><BR> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> TYPES, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> IN_TYPES</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">TYPES, IN_TYPES, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> : </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> IMethod<BR>{<BR>    typedef typename FuncTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">TYPES</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result FUNC_TYPE;<BR>    typedef IN_TYPES type;<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {TYPES_COUNT </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> typename Loki::TL::Length</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">TYPES</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::value};<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::type::OriginalType v0, <BR>        typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::type::OriginalType v1, <BR>        typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::type::OriginalType v2, <BR>        FUNC_TYPE func </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">)<BR>    {<BR>        ((typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::type</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">)<BR>            parameters[TYPES_COUNT </SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000"> typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::value])</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">setValue (v0);<BR>        ((typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::type</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">)<BR>            parameters[TYPES_COUNT </SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000"> typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::value])</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">setValue (v1);<BR>        ((typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::type</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">)<BR>            parameters[TYPES_COUNT </SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000"> typename Loki::TL::TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPES, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::value])</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">setValue (v2);<BR>    }<BR>};</SPAN></DIV><BR>parameters涓瓨鏀劇殑鏄疘Parameter*綾誨瀷錛岃繖閲屼嬌鐢ㄤ簡寮哄埗杞瀷錛屽茍璋冪敤in/inout妯℃澘綾葷殑setValue鏂規硶緇欏畠璧嬪箋?BR><BR>涓轟簡嫻嬭瘯緇撴灉錛屾垜涓篒Parameter鍔犱笂浜唙oid print () const铏氬嚱鏁幫紝騫跺湪in/inout/out妯℃澘綾諱腑瀹炵幇瀹冿紝鎵撳嵃鍑虹被鍨嬶紝in/inout綾諱腑榪樺皢鎵撳嵃鍑哄弬鏁板箋?BR><BR> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> IParameter<BR>{<BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">:<BR>    </SPAN><SPAN style="COLOR: #0000ff">virtual</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> print () </SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>};</SPAN></DIV><BR> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"> : </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> IParameter<BR>{<BR>    typedef T OriginalType;<BR>    T value;<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> setValue (T v){<BR>        value </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> v;<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> print () </SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> { <BR>        cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> typeid(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">).name() </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">: </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> value </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl; <BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"> : </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> IParameter<BR>{<BR>    typedef T OriginalType;<BR>    </SPAN><SPAN style="COLOR: #0000ff">virtual</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> print () </SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> {<BR>        cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> typeid(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">).name() </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl; <BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> inout : </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> IParameter<BR>{<BR>    typedef T OriginalType;<BR>    T value;<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> setValue (T v){<BR>        value </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> v;<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">virtual</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> print () </SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000"> {<BR>        cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> typeid(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">).name() </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">: </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> value </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl; <BR>    }<BR>};</SPAN></DIV><BR>騫跺湪Base::async_call涓皟鐢╬arameters涓墍鏈夊璞$殑print鍑芥暟鏉ヨ緭鍑轟竴浜涜皟璇曚俊鎭細<BR><BR> <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: #0000ff">for</SPAN><SPAN style="COLOR: #000000"> (size_t i </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">; i </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> parameters.size(); i </SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">)<BR>    parameters[i]</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">print ();</SPAN></DIV><BR>綆鍗曟祴璇曚簡2縐嶇被鍨嬶紝涓嶈兘淇濊瘉鎵鏈変唬鐮侀兘鏄紜殑錛屾瘯绔熸槸鎵嬪伐鍐欏嚭鏉ョ殑涔熸病緇忚繃媯鏌ワ紝妯℃澘綾誨湪娌℃湁瀹炰緥鍖栫殑鏃跺欐煇浜涢敊璇槸涓嶄細鎶ュ憡鐨勩?BR><BR>嫻嬭瘯浠g爜濡備笅錛?BR><BR> <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: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> test_func (</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> v0, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000"> v1, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000"> v2, </SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000"> v3)<BR>{<BR>    cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">===========================================</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl;<BR>    cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test_func(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> v0 </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> v1 </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> v2 </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> v3 </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl;<BR>}<BR><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> test_func1 (</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> v0, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000"> v1, </SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000"> v2, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000"> v3)<BR>{<BR>    cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">===========================================</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl;<BR>    cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test_func1(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> v0 </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> v1 </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> v2 </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> v3 </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl;<BR>}<BR><BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> main()<BR>{<BR>    {<BR>        Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">) </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> m;<BR><BR>        m.async_call(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">a</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>        cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">===========================================</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl;<BR>        m.async_call(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">a</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, test_func);<BR>        cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">===========================================</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl;<BR>    }<BR><BR>    {<BR>        Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> m;<BR>        m.async_call(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">);<BR>        cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">===========================================</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl;<BR>        m.async_call(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">, test_func1);<BR>        cout </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">===========================================</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000"> endl;<BR>    }<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}</SPAN></DIV><BR>鍏ㄩ儴浠g爜澶暱錛屽氨涓嶄竴涓緗楀垪浜庢浜嗭紝鍙互鐐瑰嚮<STRONG><A >榪欓噷</A></STRONG>涓嬭澆銆?BR><img src ="http://m.shnenglu.com/cpunion/aggbug/383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-22 19:13 <a href="http://m.shnenglu.com/cpunion/archive/2005/09/22/383.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓篊錛嬶紜瀹炵幇涓涓狪DL銆錛堜笁錛?/title><link>http://m.shnenglu.com/cpunion/archive/2005/09/21/366.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Wed, 21 Sep 2005 12:34:00 GMT</pubDate><guid>http://m.shnenglu.com/cpunion/archive/2005/09/21/366.html</guid><wfw:comment>http://m.shnenglu.com/cpunion/comments/366.html</wfw:comment><comments>http://m.shnenglu.com/cpunion/archive/2005/09/21/366.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/cpunion/comments/commentRss/366.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cpunion/services/trackbacks/366.html</trackback:ping><description><![CDATA[     鎽樿: 涓銆佷慨姝i敊璇傞鍏堜慨姝g浜岀瘒涓殑涓浜涢敊璇紝閿欒鐨勫唴瀹瑰彲瑙佺浜岀瘒鐨勮瘎璁恒傚湪Base綾諱腑錛孎UNC_TYPE闇瑕佹墍鏈夌殑in/out綾誨瀷錛屽鏋淢ethod鐨勬ā鏉垮弬鏁扳斺斿嵆鍑芥暟綾誨瀷鍙傛暟鈥斺旂殑榪斿洖鍊間笉鏄痸oid錛屽垯鎶婂畠瑁呴厤鎴恛ut鍙傛暟錛屼綔涓篎UNC_TYPE鍑芥暟綾誨瀷鐨勬渶鍚庝竴涓弬鏁幫紝榪欏彲浠ラ氳繃鍋忕壒鍖栨潵瀹炵幇銆備慨鏀筂ethod妯℃澘綾伙紝鎶婃墍鏈夌被鍨嬪寘瑁呮垚涓涓猅ypelist錛岀洿鎺ヤ紶閫掔粰Base妯℃澘綾伙紝鐢盉ase鍘繪帹瀵?..  <a href='http://m.shnenglu.com/cpunion/archive/2005/09/21/366.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/cpunion/aggbug/366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-21 20:34 <a href="http://m.shnenglu.com/cpunion/archive/2005/09/21/366.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓篊錛嬶紜瀹炵幇涓涓狪DL銆錛堜簩錛?/title><link>http://m.shnenglu.com/cpunion/archive/2005/09/20/349.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Tue, 20 Sep 2005 14:34:00 GMT</pubDate><guid>http://m.shnenglu.com/cpunion/archive/2005/09/20/349.html</guid><wfw:comment>http://m.shnenglu.com/cpunion/comments/349.html</wfw:comment><comments>http://m.shnenglu.com/cpunion/archive/2005/09/20/349.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/cpunion/comments/commentRss/349.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cpunion/services/trackbacks/349.html</trackback:ping><description><![CDATA[<P>璇存槑錛?BR>瑕佺湅鎳傚悗闈㈤偅閮ㄥ垎浠g爜錛屽嵆浣跨敤Typelist鐨勯儴鍒嗭紝鏈濂介鍏堢湅榪囥奀錛嬶紜璁捐鏂版濈淮銆嬶紝鑻辨枃鐗堝悕涓恒奙odern C++ Design銆嬨?BR>If妯℃澘綾誨湪鍐欏畬鍚庢兂璧鋒潵濂藉儚鍦ㄥ摢瑙佽繃錛屾棭鏅ㄥ幓鍏徃鏌ラ槄浜嗕竴涓嬶紝鍦ㄣ婁駭鐢熷紡緙栫▼鈥斺旀柟娉曘佸伐鍏蜂笌搴旂敤銆嬩竴涔︿腑鏈夎錛岃嫳鏂囧悕涓恒奊enerative Programming -- Methods, Tools, and Applications銆嬪熀鏈拰鏈瘒涓竴涓牱銆?BR><BR><BR>鍓?綃囦貢涓冨叓緋熷湴璁蹭簡涓浜涳紝鏈変竴涓仐鐣欓棶棰橈紝鍑芥暟鍘熷瀷鐨勬帹瀵箋?BR><BR>綆瑕佹弿榪板涓嬶細</P> <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">Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">) </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> method;<BR><BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> 鍚屾璋冪敤</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000"> str </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">hello</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000"> value </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">;<BR>method (</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">a</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">, str, value</SPAN><SPAN style="COLOR: #000000">);<BR><BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> 寮傛璋冪敤1</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">method.async_call (</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">a</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">hello</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> 寮傛璋冪敤2</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> test_func (</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">);<BR>method.async_call (</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">a</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">hello</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">, test_func);</SPAN></DIV> <P><BR>瑕佷駭鐢熻繖3縐嶅嚱鏁板艦寮忋傚弬鏁扮被鍨嬪浣曡漿鎹紝鏄互鍚庣殑璇濋錛屾湰綃囦富瑕佽В鍐沖紓姝ヨ皟鐢ㄧ殑鍑芥暟鍘熷艦鎺ㄥ闂銆傛湰綃囦篃涓嶈璁篗ethod鐨勬ā鏉垮弬鏁幫紙鍗抽偅涓嚱鏁扮被鍨嬶級榪斿洖綾誨瀷涓嶄負void鐨勬儏鍐點?BR><BR>絎竴縐嶅艦寮忥紝鍚屾璋冪敤錛屾瘮杈冨ソ澶勭悊錛屽弬鏁頒釜鏁板拰妯℃澘鍙傛暟鐨勬暟閲忕浉鍚屻?BR><BR>鍚?縐嶅艦寮忥紝濡備綍璁╃紪璇戝櫒鏍規嵁in/out鏉ユ帹瀵煎嚭鍑芥暟鍘熷瀷錛?BR><BR>鎴戜滑闇瑕佺紪璇戝櫒鍋氳繖鏍風殑澶勭悊錛宎sync_call鐨勫弬鏁扮被鍨嬩腑錛宨n綾誨瀷鐨勫弬鏁板皢淇濈暀錛宱ut綾誨瀷鐨勫弬鏁頒笉闇瑕侊紝inout綾誨瀷涔熼渶瑕佷繚鐣欍?BR><BR>瑕佺敤鍒扮殑Loki澶存枃浠訛細</P> <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">#include </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">static_check.h</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>#include </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Typelist.h</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR><BR></SPAN><SPAN style="COLOR: #0000ff">using</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">namespace</SPAN><SPAN style="COLOR: #000000"> Loki;<BR></SPAN><SPAN style="COLOR: #0000ff">using</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">namespace</SPAN><SPAN style="COLOR: #000000"> Loki::TL;</SPAN></DIV> <P><BR>棣栧厛鐪嬬湅in/inout/out鐨勫0鏄庛備負浜嗙畝鍖栵紝榪欓噷鍘繪帀浜嗚窡綾誨瀷鎺ㄥ鏃犲叧鐨勯儴鍒嗐?/P> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> NullType<BR>{<BR>    NullType ();<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef T OriginalType;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef T OriginalType;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> inout<BR>{<BR>    typedef T OriginalType;<BR>};<BR></SPAN></DIV><BR>涓嬮潰Method妯℃澘綾葷殑澹版槑錛屼嬌鐢ㄥ亸鐗瑰寲鏉ヤ駭鐢熶唬鐮併備負浜嗙畝鍖栵紝鎴戝彧鍙栧嚱鏁板弬鏁頒釜鏁頒負4涓弬鏁扮殑鐗堟湰錛屾瘮鐓х潃涓婇潰鐨勪唬鐮佹潵瑙i噴錛屽彧瑙i噴method.async_call (3, 'a', "hello", test_func);榪欎釜鐗堟湰錛屽洜涓哄彟涓涓瘮瀹冪畝鍗曘?BR><BR> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Method<BR>{<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> Ret, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> B, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> C, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> D</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Ret(A,B,C,D)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> <BR>{<BR>};</SPAN></DIV> <P><BR>鏍規嵁涓婇潰Method鐨勫畾涔夛紝Method < void(in<INT>, in<CHAR>, inout<STRING>, out<SHORT>) > 錛宎sync_call鍑芥暟鐨勭被鍨嬪皢鏄細<SPAN style="COLOR: #000000"></P> <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">typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> (</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">, FUNC_TYPE func);</SPAN></DIV></SPAN><BR>瀹為檯涓奆UNC_TYPE搴旇鑳藉鎺ュ彈鏇村箍娉涚殑綾誨瀷錛屾瘮濡倂oid(int, char, char*, short)錛岃繖鍙互鍦ㄥ唴閮ㄥ仛涓浜涜漿鎹紝涓嶈繃鏈瘒鐨勯噸鐐逛笉鍦ㄨ繖閲岋紝鎵浠ュ彧璁蹭笂闈㈢殑閭g褰㈠紡銆?BR><BR>鐩存帴鍦∕ethod綾諱腑瀹炵幇鏈変簺楹葷儲錛屾墍浠ユ垜鎶婅繖涓嚱鏁版斁鍦ㄤ竴涓熀綾諱腑瀹炵幇錛屽彧瑕佺紪璇戝櫒鑳藉府鎴戜滑鎺ㄥ鍑轟笅闈㈣繖縐嶅艦寮忓氨琛屼簡錛?BR><BR> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> Ret, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> B, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> C, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> D</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Method </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Ret(A,B,C,D)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> : </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> A, B, C </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>};</SPAN></DIV> <P><BR>娉ㄦ剰錛岃繖閲屾槸浠ethod < void(in<INT>, in<CHAR>, inout<STRING>, out<SHORT>) >榪欑褰㈠紡鏉ヨ鐨勶紝鎵嶄細鏈変笂闈㈤偅縐嶇戶鎵垮叧緋匯傝屽疄闄呬笂錛岀敱浜巌n/out鍦ㄥ弬鏁頒腑鐨勪綅緗佹暟閲忛兘鏄湭鐭ョ殑錛岃鍒板畾涔夋椂鎵嶈兘紜畾錛屾墍浠ヤ嬌鐢ㄦā鏉挎潵鎺ㄥ銆傦紙鍏ユ棰樹簡錛?/P> <P>涔熷氨鏄錛屽彧瑕佹垜浠兘浣跨敤闈欐佹帹瀵兼柟寮忥紝鑾峰緱A,B,C,D榪欏洓涓弬鏁頒腑鎵鏈夌殑in綾誨瀷錛屾妸瀹冧氦緇橞ase浣滀負妯℃澘鍙傛暟灝辨垚浜嗐?/P> <P>榪欓噷闇瑕佷竴涓緟鍔╃殑妯℃澘綾伙紝鐢ㄦ潵鍦ㄧ紪璇戞椂甯姪鎺ㄥ錛?BR><BR></P> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits<BR>{<BR>    Loki::CompileTimeError </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> Not_Supported_Type;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {isin</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">, isout</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">};<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {isin</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">, isout</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">};<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {isin</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">, isout</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">};<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> NullType </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    </SPAN><SPAN style="COLOR: #0000ff">enum</SPAN><SPAN style="COLOR: #000000"> {isin</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">, isout</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">};<BR>};</SPAN></DIV></SPAN><BR>閫氳繃鍙︿竴涓ā鏉跨被InList鏉ュ府鎴戜滑浜х敓鎵鏈夌殑in綾誨瀷錛屽畠鐨勭粨鏋滄槸涓涓猅ypelist銆備負浜嗘柟渚夸互鍚庝嬌鐢紝鎴戞妸out綾誨瀷浜х敓鍣ㄤ篃鍋氫簡涓涓狾utList銆?BR><BR> <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: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> CONDITION, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> _IF, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> _ELSE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> If<BR>{<BR>    typedef _IF Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> _IF, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> _ELSE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">, _IF, _ELSE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef _ELSE Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> B </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> C </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> D </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, <BR>    </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> E </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> F </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> G </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> H </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType<BR></SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InList<BR>{<BR>    typedef typename If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> <BR>        InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::isin,<BR>        typename Typelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> A, typename InList</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">B,C,D,E,F,G</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, <BR>        typename InList</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">B,C,D,E,F,G,H</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result <BR>    </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> InList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A, NullType, NullType, NullType, NullType, NullType, NullType, NullType</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef typename If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"><BR>        InOutTypeTraits </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::isin,<BR>        typename MakeTypelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result,<BR>        typename MakeTypelist </SPAN><SPAN style="COLOR: #000000"><></SPAN><SPAN style="COLOR: #000000">::Result<BR>    </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> B </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> C </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> D </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, <BR>    </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> E </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> F </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> G </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType, </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> H </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NullType<BR></SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> OutList<BR>{<BR>    typedef typename If </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> <BR>        InOutTypeTraits</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::isout,<BR>        typename Typelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> A, typename OutList</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">B,C,D,E,F,G</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">, <BR>        typename OutList</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">B,C,D,E,F,G,H</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result <BR>    </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> OutList </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A, NullType, NullType, NullType, NullType, NullType, NullType, NullType</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef typename MakeTypelist </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">A</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result Result;<BR>};</SPAN></DIV><BR>瀹冪殑鍘熺悊鏄紝鏍規嵁If妯℃澘綾繪潵鍒ゆ柇涓涓被鍨嬫槸涓嶆槸in綾誨瀷錛屾槸鐨勮瘽灝辨妸瀹冨姞鍏ュ埌Typelist涓紝涓嶆槸灝辨帓闄ゅ畠銆?BR><BR>InList <IN<INT>, in<CHAR>, inout<STRING>, out<SHORT>::Result鏄竴涓猅ypelist <IN<INT>, Typelist<IN<CHAR>, Typelist<INOUT<STRING>, NullType> > >綾誨瀷錛岃綆鍗曠偣錛屽畠鍜孧akeTypelist < in<INT>, in<CHAR>, inout<STIRNG> >::Result鏄瓑浠風殑銆?BR><BR>鐜板湪Base妯℃澘綾誨皢鎺ュ彈涓涓ā鏉垮弬鏁幫紝瀹冩槸涓涓猅ypelist綾誨瀷錛岃繖涓笉璇︾粏璁蹭簡錛屾妸瀹冪殑瀹氫箟鍐欏嚭鏉ワ細<BR><BR> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T, </SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> T_COUNT </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> Length </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IN_TYPE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::value </SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base<BR>{<BR>    Loki::CompileTimeError </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"> Only_Use_Partial_Specialisation_Version;<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)();<BR><BR>    template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> FUNC_TYPE</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call ()<BR>    {<BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType);<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0,<BR>        FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0)<BR>    {<BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType);<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1, <BR>        FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1)<BR>    {<BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType);<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v2, <BR>        FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v2)<BR>    {<BR>    }<BR>};<BR><BR>template </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000"> Base </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>    typedef </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">FUNC_TYPE)(<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType);<BR><BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v2, <BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v3,<BR>        FUNC_TYPE func)<BR>    {<BR>    }<BR>    </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> async_call (<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v0,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v1,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v2,<BR>        typename TypeAt </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">T, </SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::Result::OriginalType v3)<BR>    {<BR>    }<BR>};</SPAN></DIV><BR>榪欓儴鍒嗘湁鐐瑰錛屽叾瀹炶繕鏄瘮杈冩竻鏅扮殑銆傛敞鎰忚繖涓狟ase鐨勭増鏈凡緇忎笉鏄笂闈㈡墍璁茬殑閭d釜浜嗐?BR><BR>鍑芥暟鍘熷艦鎺ㄥ闂灝辮瀹屼簡銆備笂闈㈢殑浠g爜涓嶄竴瀹氳繕鑳界紪璇戯紝鏄ㄥぉ鏄兘緙栬瘧鐨勶紝琚垜淇敼浜嗕竴浜涳紝涓轟簡瑙i噴錛屽張鏀規垚鏄ㄥぉ閭f牱瀛愩?img src ="http://m.shnenglu.com/cpunion/aggbug/349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-20 22:34 <a href="http://m.shnenglu.com/cpunion/archive/2005/09/20/349.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓篊錛嬶紜瀹炵幇涓涓狪DL銆錛堜竴錛?/title><link>http://m.shnenglu.com/cpunion/archive/2005/09/17/284.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Sat, 17 Sep 2005 11:40:00 GMT</pubDate><guid>http://m.shnenglu.com/cpunion/archive/2005/09/17/284.html</guid><wfw:comment>http://m.shnenglu.com/cpunion/comments/284.html</wfw:comment><comments>http://m.shnenglu.com/cpunion/archive/2005/09/17/284.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.shnenglu.com/cpunion/comments/commentRss/284.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cpunion/services/trackbacks/284.html</trackback:ping><description><![CDATA[<P>鍓嶉潰綆鍗曞啓浜嗙偣闈欐佺粨鏋勶紝榪欎竴嬈″皢涓昏鍏蟲敞鍔ㄦ佹ā鍨嬩互鍙婅皟鐢ㄦ柟寮忋?/P> <P>榪欎釜緋誨垪鐨勫悕瀛楀彨鈥滀負C++瀹炵幇涓涓狪DL鈥濓紝瀹為檯涓婂簲璇ュ彨鈥滀負C++瀹炵幇涓涓猂emoting鈥濆彲鑳芥洿濂戒竴浜涳紝璇存槸IDL錛屼富瑕佹槸鎯抽氳繃瀹忥紝浣跨敤綆鍗曠殑綾誨瀷瀹氫箟杈懼埌鑷姩鐢熸垚璋冪敤浠g爜鐨勭洰鐨勩?/P> <P><STRONG>涓銆侀鍏堟潵鐪嬬湅璋冪敤涔犳儻銆?/STRONG></P> <P>浠庤皟鐢ㄤ範鎯叆鎵嬶紝涓昏鏄洜涓虹湅鍒扮洰鍓嶆湁寰堝搴?宸ュ叿鍖呭湪璋冪敤涓婇兘鏈夊緢澶氫笉渚夸箣澶勩傚亣濡傝兘鍦ㄤ竴寮濮嬪氨浠庤繖鐐瑰嚭鍙戯紝灝辮兘鎶婅皟鐢ㄦ帴鍙h璁″緱鏇村ソ涓浜涖?/P> <P>鍏堟潵鐪嬬湅鏈嶅姟绔浣曞紑鏀句竴涓湇鍔°?/P> <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: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽main聽()<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽鍙戝竷涓篠OAP鏈嶅姟錛屽厛鐢熸垚涓涓湇鍔″鍣ㄣ?BR>聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽鏈嶅姟灝嗗彂甯冨湪localhost鐨?911涓婏紝localhost鐢ㄦ潵緇戝畾loopback緗戝崱銆?/SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">聽聽聽聽SOAPProxy聽soap_service聽(</SPAN><SPAN style="COLOR: #000000">7911</SPAN><SPAN style="COLOR: #000000">,聽鈥渓ocalhost鈥?;<BR><BR>聽聽聽聽TestService聽test_service;聽<BR>聽聽聽聽soap_service.addService聽聽(鈥渢est_service鈥?聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test_service);<BR><BR>聽聽聽聽TestService聽service1;<BR>聽聽聽聽soap_service.addService聽(鈥淗elloService鈥?聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">service1);<BR><BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">{<BR>聽聽聽聽聽聽聽聽soap_service.run聽();<BR>聽聽聽聽}聽</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">聽(SocketException</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽e)<BR>聽聽聽聽{<BR>聽聽聽聽}聽</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">聽(SignalException</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽e)<BR>聽聽聽聽{<BR>聽聽聽聽}<BR><BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}</SPAN></DIV> <P><BR>鎴戝笇鏈涘氨鏄繖涔堢畝鍗曪紝瀹㈡埛绔皟鐢ㄦ湁澶氱鏂瑰紡錛?BR>1銆伮犱嬌鐢ㄦ湇鍔$殑IDL瀹氫箟錛岀洿鎺ヨ皟鐢細</P> <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: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽main聽()<BR>{<BR>聽聽聽聽SOAPProxy聽soap_service聽(</SPAN><SPAN style="COLOR: #000000">7911</SPAN><SPAN style="COLOR: #000000">,聽鈥渓ocalhost鈥?;<BR><BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">{<BR>聽聽聽聽聽聽聽聽TestService聽test_service聽(鈥渢est_service鈥?聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">soap_service);<BR>聽聽聽聽聽聽聽聽test_service.method1聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000"><IMG src="http://m.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽}聽</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">聽(SocketException</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽e)<BR>聽聽聽聽{<BR>聽聽聽聽}<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}</SPAN></DIV> <P><BR>榪欑鏂瑰紡姣旇緝綆鍗曪紝璋冪敤鏃朵細媯鏌ユ槸鍚﹀凡緇忚繛鎺ワ紝鐒跺悗鍙戦佽皟鐢ㄨ姹傦紝騫跺鐞嗚皟鐢ㄧ粨鏋溿?/P> <P>2銆伮犳湇鍔¢獙璇佹柟寮忥細</P> <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: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽main聽()<BR>{<BR>聽聽聽聽SOAPProxy聽soap_service聽(</SPAN><SPAN style="COLOR: #000000">7911</SPAN><SPAN style="COLOR: #000000">,聽鈥渓ocalhost鈥?;<BR>聽聽聽聽TestService聽test_service;<BR>聽聽聽聽soap_service.getService聽(鈥渢est_service鈥?聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test_service);<BR><BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">聽(test_service)<BR>聽聽聽聽{<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">{<BR>聽聽聽聽聽聽聽聽聽聽聽聽test_service.method1聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000"><IMG src="http://m.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽}聽</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">聽(SocketException</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽e)<BR>聽聽聽聽聽聽聽聽{<BR>聽聽聽聽聽聽聽聽}<BR>聽聽聽聽}<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}</SPAN></DIV> <P><BR>3銆伮犳湇鍔″彂鐜版柟寮忥細</P> <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: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽main聽()<BR>{<BR>聽聽聽聽SOAPProxy聽soap_service聽(</SPAN><SPAN style="COLOR: #000000">7911</SPAN><SPAN style="COLOR: #000000">,聽鈥渓ocalhost鈥?;<BR>聽聽聽聽vector聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽services_name聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽soap_service.getServiceNames聽();<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽<IMG src="http://m.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">聽聽聽聽IService</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽test_service聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽soap_service.getService聽(鈥渢est_service鈥?;<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">聽(test_service)<BR>聽聽聽聽{<BR>聽聽聽聽聽聽聽聽vector聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽methods聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽test_service</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">getMethodNames聽();<BR>聽聽聽聽聽聽聽聽IMethod</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽method聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽test_service</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">getMethod聽(鈥渕ethod1鈥?;<BR>聽聽聽聽聽聽聽聽vector聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Type</SPAN><SPAN style="COLOR: #000000">*></SPAN><SPAN style="COLOR: #000000">聽types聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽method</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">getParameterType聽s()<BR>聽聽聽聽聽聽聽聽method</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">addArg聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽method</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">addArg聽(</SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽<IMG src="http://m.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">聽聽聽聽聽聽聽聽method</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">invoke聽();<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽<IMG src="http://m.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">聽聽聽聽}<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR>}</SPAN></DIV> <P><STRONG><BR>浜屻佸熀鏈渶姹傘?BR><BR></STRONG>綆鍗曞垎鏋愪竴涓嬶紝涓婇潰涓鍏辨秹鍙婁簡鍝簺綾誨瀷錛?BR>IProxy:<BR>榪欐槸鎵鏈塒roxy綾葷殑鍩虹被(鍜屾帴鍙?錛屽畠鍙互瀹圭撼澶氫釜鏈嶅姟瀵硅薄錛屾彁渚涙湇鍔$粦瀹氥佹湇鍔℃煡璇€佹湇鍔″彂鐜般佹湇鍔¢獙璇併?BR>IService:<BR>鎵鏈塖ervice綾葷殑鍩虹被錛屽彲浠ュ綰沖涓柟娉?Method)錛屾彁渚涙柟娉曟煡璇€佹湇鍔¢獙璇併?BR>IMethod:<BR>鎵鏈塎ethod妯℃澘綾葷殑鍩虹被錛屽綰沖涓弬鏁幫紝鍖呮嫭榪斿洖鍊鹼紝鍙氳繃鏌ヨ鍙傛暟綾誨瀷鑾峰緱鏂規硶鐨勭被鍨嬪畾涔夈?BR>IParameter:<BR>鎵鏈夊弬鏁扮殑鍩虹被錛屽寘鍚竴涓弬鏁扮被鍨嬫弿榪板拰涓涓弬鏁板箋?BR>IType:<BR>鎵鏈夌被鍨嬬殑鍩虹被錛岄瀹氫箟浜嗕竴浜涘熀鏈被鍨嬶紝鍙嚜瀹氫箟綾誨瀷銆?/P> <P>鐪嬭搗鏉ユ尯澶氱殑錛屽叾瀹炲緢闅炬帴瑙﹀埌榪欎簺錛屽彧闇瑕佷嬌鐢ㄥ畯鏉ュ畾涔変竴涓湇鍔★紝灝卞彲浠ラ氳繃妯℃澘鐨勭被鍨嬫帹瀵鹼紝鑷姩鐢熸垚榪欎簺澶嶆潅鐨勫畾涔夈?/P><STRONG>涓夈佽皟鐢ㄨ繃紼嬨?BR><BR></STRONG>浠ヤ笅鍙畝鍗曞垎鏋愪竴涓嬪悓姝ヨ皟鐢紝寮傛璋冪敤灝嗘槸浠ュ悗鐨勬墿鍏呰瘽棰樸?BR>鏍規嵁絎簩鑺傜殑3縐嶄笉鍚岃皟鐢ㄨ繃紼嬶紝綆瑕佹弿榪板涓嬶細 <OL> <LI>鐩存帴璋冪敤銆?BR><BR> <UL> <LI>鐢熸垚SOAPProxy錛岃瀹冭繛鎺ュ埌榪滅▼涓繪満銆?BR> <LI>鐢熸垚涓涓猅estService瀵硅薄錛岃緗繙紼嬩富鏈轟笂鐨勬湇鍔″悕縐幫紝騫舵寚瀹氫嬌鐢⊿OAPProxy錛屼篃鍗充嬌鐢⊿OAP鍗忚銆?BR> <LI>璋冪敤TestService::method1鏂規硶銆傛牴鎹甿ethod1鐨勫畾涔夛紝鎶婃湇鍔″悕縐般佹柟娉曞悕縐般佸悇涓猧n鍙傛暟絳夋墦鍖呮垚涓涓滈泦鍚堚濓紝浜ょ粰SOAPProxy澶勭悊銆?BR> <LI>SOAPProxy鎶婅繖涓滈泦鍚堚濊漿鎹㈡垚SOAP娑堟伅錛屽彂閫佸埌榪滅▼涓繪満錛岄樆濉炵嚎紼嬨?BR> <LI>榪滅▼涓繪満涓婄殑SOAPProxy瀵硅薄鏀跺埌鏁版嵁錛岃繘琛岃В鏋愩傚綋瑙f瀽鍑轟竴涓湇鍔¤皟鐢ㄦ椂錛屾妸瀹冧氦緇橳estService鏈嶅姟澶勭悊銆?BR> <LI>TestService瑙f瀽鍑轟竴涓柟娉曡皟鐢紝鎶婂畠浜ょ粰Method澶勭悊銆?BR> <LI>Method瑙f瀽鍑哄悇涓弬鏁幫紝楠岃瘉鍙傛暟綾誨瀷銆佸畬鏁存х瓑錛屽茍鎵ц璋冪敤鎴栬繑鍥為敊璇?BR> <LI>Method璋冪敤鐨勮繑鍥炰俊鎭?鍖呮嫭璋冪敤緇撴灉銆佽繑鍥炲箋乷ut鍙傛暟絳?琚墦鍖呮垚涓涓滈泦鍚堚濓紝浜ょ粰TestService澶勭悊銆?BR> <LI>TestService澶勭悊鍚庯紝浜ょ粰SOAPProxy銆?BR> <LI>SOAPProxy鎶婄粨鏋滄墦鍖呮垚SOAP娑堟伅錛屽彂鍥炶皟鐢ㄧ銆?BR> <LI>璋冪敤绔В鏋怱OAP娑堟伅錛屾妸OUT鍙傛暟鍊艱祴緇欒皟鐢ㄨ呮彁渚涚殑瀵硅薄錛岃皟鐢ㄥ畬鎴愩?</LI></UL> <P>聽</P> <LI>鏈嶅姟楠岃瘉鏂瑰紡銆?BR> <UL> <LI>鐢熸垚SOAPProxy錛岃瀹冭繛鎺ュ埌榪滅▼涓繪満銆?BR> <LI>鐢熸垚TestService瀵硅薄錛岃皟鐢⊿OAPProxy鐨刧etService楠岃瘉鐗堟湰銆?BR> <LI>SOAPProxy鎶奣estService瀵硅薄鐨勪俊鎭?鍚嶇О銆佹垚鍛樺強鍩虹被鍨嬬瓑)鍙戦佸埌榪滅▼涓繪満錛岄樆濉炪?BR> <LI>榪滅▼涓繪満瑙f瀽鏀跺埌鐨勪俊鎭紝鏌ユ壘鏈嶅姟鍚嶏紝騫舵瘮杈冩煡鎵懼埌鐨勬湇鍔$被鍨嬩笌瑙f瀽寰楀埌鐨勭被鍨嬨?BR> <LI>姣旇緝緇撴灉鍙戝洖緇欒皟鐢ㄧ銆?BR> <LI>璋冪敤绔帴鐫閲囩敤鐩存帴璋冪敤鐨勬柟寮忥紝璋冪敤榪滅▼鏈嶅姟銆?/LI></UL><BR>榪欑鏂瑰紡鐪嬭搗鏉ュ浜嗕竴浜涙搷浣滐紝涓嶈繃楠岃瘉鐨勫ソ澶勬槸鑳藉鍑忓皯璋冪敤鏃剁殑寮傚父銆? <P></P> <LI>鏈嶅姟鍙戠幇鏂瑰紡銆?BR> <UL> <LI>鐢熸垚SOAPProxy錛岃瀹冭繛鎺ュ埌榪滅▼涓繪満銆?BR> <LI>鏌ヨ榪滅▼寮鏀劇殑鏈嶅姟鍚嶇О銆?鍙渷鐣?<BR> <LI>鏌ユ壘鐗瑰畾鏈嶅姟錛屽緱鍒版湇鍔℃弿榪頒俊鎭?BR> <LI>鏌ユ壘鏈嶅姟涓殑鏂規硶錛屽緱鍒版柟娉曟弿榪頒俊鎭?BR> <LI>鍘嬪叆鍚勪釜鍙傛暟錛屽茍鎵ц璋冪敤銆?BR> <LI>璋冪敤鍓嶅厛鍒ゆ柇鍙傛暟鏄惁涓庢弿榪頒竴鑷達紝鐒跺悗璋冪敤SOAPProxy鐢熸垚SOAP娑堟伅錛屽彂閫佸埌榪滅▼涓繪満錛岄樆濉炪?BR> <LI>榪滅▼涓繪満瑙f瀽鍑鴻皟鐢ㄣ傘傘傚悗闈㈣繃紼嬩笌絎?縐嶆柟寮忕浉鍚岋紝榪滅▼涓繪満騫朵笉鐭ラ亾瀹㈡埛绔嬌鐢ㄧ殑鏄摢縐嶆柟寮忔潵璋冪敤銆傝繙紼嬩富鏈哄鐞嗙粨鏉燂紝灝嗚繑鍥濻OAP娑堟伅緇欒皟鐢ㄧ銆?BR> <LI>璋冪敤绔В鏋愬嚭璋冪敤緇撴灉錛屽茍鎶婂悇涓狾UT鍙傛暟鐨勫艱祴緇檓ethod瀵硅薄銆?/LI></UL><BR>浣跨敤榪欑鏂瑰紡錛岃皟鐢ㄧ涓嶉渶瑕佹湇鍔$殑綾誨瀷瀹氫箟銆? <P></P></LI></OL> <P><STRONG>鍥涖佸紓姝ヨ皟鐢?寮傛鍒嗘淳(AMI/AMD)銆?BR></STRONG><BR>鍚屾璋冪敤鏃訛紝璋冪敤绔嚎紼嬮渶瑕佺瓑寰呰皟鐢ㄧ粨鏋滐紝鏈嶅姟绔嚎紼嬩篃瑕佺瓑寰呰皟鐢ㄧ粨鏉熻繑鍥烇紝鎵嶅鐞嗕笅涓涓皟鐢ㄣ?BR>涓轟簡鍦ㄦ湇鍔¤皟鐢ㄦ湡闂磋綰跨▼鑳藉仛鏇村鐨勪簨錛?BR>璋冪敤绔妸璋冪敤浜ょ粰綰跨▼姹犲畬鎴愶紝騫跺湪璋冪敤瀹屾垚鍚庨噰鐢ㄦ煇縐嶆満鍒墮氱煡綰跨▼澶勭悊緇撴灉錛屾垨鑰呯洿鎺ョ敱綰跨▼姹犱腑鐨勮皟鐢ㄧ嚎紼嬭皟鐢ㄧ粨鏋滃鐞嗗嚱鏁般傝繖縐嶆柟寮忕О涓篈MI(寮傛鏂規硶璋冪敤)銆?BR>鏈嶅姟绔富綰跨▼鍒欐妸鎺ユ敹鍒扮殑娑堟伅瑙f瀽鍚庯紝鏀懼叆澶勭悊闃熷垪錛岀敱綰跨▼姹犲幓澶勭悊璋冪敤榪囩▼銆傚綋璋冪敤瀹屾垚鍚庯紝緇撴灉鏀懼叆緇撴灉闃熷垪錛岀敱涓葷嚎紼嬪鐞嗘垚娑堟伅錛屽彂閫佸洖璋冪敤绔傝繖縐嶆柟寮忕О涓篈MD(寮傛鏂規硶鍒嗘淳)銆?BR>璋冪敤绔拰鏈嶅姟绔緷鏃ф槸浣跨敤閫氳鍗忚鏉ユ矡閫氾紝鍙屾柟閮戒笉鐭ラ亾瀵規柟鏄惁閲囩敤浜嗗紓姝ユ柟寮忋?/P> <P>AMI鍜孉MD瀵逛簬闈欐佸畾涔夌殑鏈嶅姟鏄湁褰卞搷鐨勶紝姣斿涓嬮潰涓涓湇鍔★細</P> <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: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService<BR>{<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽method1;<BR>}</SPAN></DIV> <P><BR>鍦ㄥ悓姝ヨ皟鐢ㄦ椂錛屽畠鐨勮皟鐢ㄦ柟寮忥細</P> <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">TestService聽test_service;<BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽a;<BR>service.method1聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽a);聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽鎴栬吢爏ervice.method1聽(3,聽&a)錛屾墦綆楀吋瀹硅繖2縐嶆柟寮忋?/SPAN></DIV> <P><BR>寮傛璋冪敤鏃訛紝璋冪敤鏂瑰紡錛?/P> <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: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽method1_result聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">);<BR>TestService聽test_service;<BR>test_service.method1.async_call(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽method1_result);聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽璋冪敤瀹屾垚鍚庯紝璁╄皟鐢ㄧ嚎紼嬪幓璋冪敤method1_result閫氱煡璋冪敤緇撴灉銆?BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽鎴栬呭儚涓嬮潰</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">IMethod</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽result聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽test_service.method1.async_call聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">聽(</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000">result</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">done())聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">聽榪樻湁寰堝濂藉姙娉曪紝榪欓噷鍙槸涓轟簡綆鍗曘?/SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">{<BR>聽聽聽聽sleep聽(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">);<BR>}<BR>cout聽</SPAN><SPAN style="COLOR: #000000"><<</SPAN><SPAN style="COLOR: #000000">聽result</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">getArg(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">toInt();聽<BR></SPAN></DIV> <P><BR>姝e涓婇潰婕旂ず鐨勪竴鏍鳳紝寮傛璋冪敤鐨勭粨鏋滄湁2縐嶆柟寮忓幓澶勭悊銆?BR>涓鏄敱綰跨▼姹犺皟鐢ㄥ畬浠ュ悗錛屾帴鐫璋冪敤涓涓嚱鏁頒互閫氱煡緇撴灉銆傚畠涓嶉渶瑕佽疆璇紝涓嶈繃娑夊強鍒頒簡綰跨▼闂錛屽鍔犱簡涓浜涘鏉傛с?BR>鍙︿竴縐嶆柟寮忚皟鐢ㄧ粨鏉熷悗錛屽師璋冪敤綰跨▼鍦ㄦ煇涓傚綋鐨勨滄椂鏈衡濆幓鏌ヨ璋冪敤緇撴灉銆傝繖涓椂鏈哄彲浠ユ槸瀹氭椂鏌ヨ錛屼篃鍙互鏄綰跨▼娑堟伅閫氱煡鑰屽幓澶勭悊銆?/P> <P><STRONG>浜斻佸叾瀹冦?BR></STRONG><BR>榪欎竴綃囧姞涓婂墠涓綃囷紝搴旇鏄彁鍒頒簡鍏ㄩ儴鐨勮鐐廣?BR>鐩墠鍓╀笅鐨勫敮涓涓涓毦鐐癸紝鍙兘鏄湪澶勭悊寮傛璋冪敤鏃訛紝Method鐨勫畾涔夈?BR>姝e涓婇潰婕旂ず鐨勶紝涓涓柟娉曞湪鍚屾璋冪敤鍜屽紓姝ヨ皟鐢ㄦ椂錛屽氨鏈?縐嶈皟鐢ㄦ柟寮忥細</P> <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">service.method1聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽a);<BR>test_service.method1.async_call(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽method1_result);<BR>IMethod</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽result聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽test_service.method1.async_call聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">);</SPAN></DIV> <P><BR>鐗瑰埆鍦幫紝瀹冨浣曟牴鎹甶n鍜屼釜鏁板拰out鐨勪釜鏁幫紝浜х敓閭?涓弬鏁頒釜鏁板尮閰嶇殑寮傛璋冪敤鍑芥暟錛?BR>鍐嶆潵鍥為【涓涓媘ethod1鐨勫畾涔夛細</P> <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">Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽method1;</SPAN></DIV> <P><BR>鏄劇劧鏈変竴瀹氱殑澶嶆潅鎬э紝涓嶈繃鎴戣涓鴻繕鏄彲浠ュ鐞嗘帀鐨勩傛嬁3涓弬鏁扮殑鍋忕壒鍖栫増鏈潵璇存槑錛?/P> <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: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽Ret,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽A,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽B,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽C</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Ret</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">(A,B,C)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽MethodBase聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">Ret</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,A,B,C</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR>{<BR>};<BR><BR>template聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽Ret</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽A</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽B</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽C</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽D</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">NullType,聽IN_COUNT</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">InCount</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">聽A,B,C,D</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">::value聽</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽MethodBase<BR>{<BR>};<BR><BR></SPAN></DIV> <P><BR>閫氳繃瀵筂ethodBase綾葷殑IN錛緾OUNT鍙傛暟瀹氫箟鍋忕壒鍖栵紝鍗沖彲瀹氫箟鍑鴻繖浜涗笉鍚岀殑鐗堟湰銆?BR><BR>褰撶劧浠呬粎鏄煡閬撲簡IN鍙傛暟鐨勪釜鏁幫紝榪樻病鏈夋彁鍙栧嚭IN鍙傛暟鐨勭被鍨嬶紝鎵浠ヨ繕涓嶈兘鐢熸垚鍑芥暟鐨勫師鍨嬶紝鎴栬闇瑕佹妸typelist鍔犺繘鏉ヤ簡錛坙oki涓殑閭d釜錛夈?BR><BR><BR><BR>榪欐槸鍚庨潰瑕佽冭檻鐨勫唴瀹癸紝浠婂ぉ鍏堟兂鍒拌繖銆?/P><img src ="http://m.shnenglu.com/cpunion/aggbug/284.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-17 19:40 <a href="http://m.shnenglu.com/cpunion/archive/2005/09/17/284.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓篊錛嬶紜瀹炵幇涓涓狪DL銆錛堥浂錛?/title><link>http://m.shnenglu.com/cpunion/archive/2005/09/15/272.html</link><dc:creator>qiezi</dc:creator><author>qiezi</author><pubDate>Wed, 14 Sep 2005 17:27:00 GMT</pubDate><guid>http://m.shnenglu.com/cpunion/archive/2005/09/15/272.html</guid><wfw:comment>http://m.shnenglu.com/cpunion/comments/272.html</wfw:comment><comments>http://m.shnenglu.com/cpunion/archive/2005/09/15/272.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.shnenglu.com/cpunion/comments/commentRss/272.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cpunion/services/trackbacks/272.html</trackback:ping><description><![CDATA[<P>涓銆侀棶棰樸?BR><BR>榪欐鏃墮棿鑰冭檻瀹炵幇涓涓函C錛嬶紜鐨勫垎甯冨紡鏈嶅姟鍖呰搴擄紝綆瑕佹弿榪板涓嬶細</P> <P>鏈夊涓嬬被鍜屽嚱鏁幫細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽Test<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">out</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};<BR><BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test_func聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">inout</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);</SPAN></DIV></DIV> <P><BR>鎯蟲妸瀹冧滑浣滀負鏈嶅姟鍙戝竷鍑哄幓錛屼互SOAP鎴栧叾瀹冩柟寮忋傚彂甯冧負涓涓猅estService錛屽茍璁╁畠鎼哄甫澶氫竴浜涗俊鎭?</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test_func聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};</SPAN></DIV></DIV> <P><BR>C錛嬶紜鏈夎澶氬伐鍏楓佸簱鏉ュ仛鍒拌繖鐐癸紝浣嗘槸錛岄兘闇瑕佺敓鎴愪竴鍫嗕唬鐮侊紝寰堟槸涓嶇埥銆?BR><BR>鍏跺畠璇█錛屾瘮濡俻ython, java, c#絳夛紝閮藉彲浠ラ氳繃鑷渷鏈哄埗錛屾姏寮IDL鍦ㄨ璦鍐呭疄鐜般?BR><BR>C錛嬶紜騫墮潪涓嶈兘鍋氳繖涓紝瀹冨彧鏄己灝戣凍澶熺殑綾誨瀷淇℃伅銆傛瘮濡備笂闈㈢殑渚嬪瓙錛屽鏋滆鍙戝竷涓烘湇鍔★紝閭d箞鑷沖皯搴旇鎶婂畠鐨勫弬鏁般佽繑鍥炲兼悶寰楁槑紜簺錛屽惁鍒欒涔堜細閫犳垚涓嶅繀瑕佺殑鍙傛暟浼犻掞紝瑕佷箞浼氫駭鐢熼敊璇紙鎶奜UT鍙傛暟鍙栧煎彲涓嶆槸瀹夊叏鐨勶級銆?BR><BR>姣斿涓婇潰鍑虹幇鐨刬nt, int&, int*錛屽湪浣滀負in鍙傛暟鏃訛紝鎴戜滑鏄兂浼犻掑畠鐨勫鹼紝綾誨瀷涓篿nt銆傝宨nt*鍜宻tring*浣滀負out鍙傛暟鏃訛紝鎴戜滑鎯寵瀹冧紶閫掓寚閽堟垨寮曠敤錛屽綋璋冪敤榪斿洖鏃訛紝鎴戜滑緇欏畠璧嬪箋?BR><BR>C錛嬶紜璇█鐨勭被鍨嬫瀬涓轟赴瀵岋紝鍗存病鏈夋弿榪頒竴涓弬鏁板埌搴曟槸in榪樻槸out銆俲ava涔熸病鏈夛紝浣嗗畠鍙互姝e父搴忓垪鍖栦竴涓猲ull鍊鹼紝鍦–錛嬶紜涓紝榪欏彲鑳藉瓨鍦ㄤ竴浜涢夯鐑︺?BR><BR>鍐嶈冭檻涓涓媍har*綾誨瀷錛屽亣濡傚畠鏄痠n鍙傛暟錛岄偅涔堝畠鏄浼犻掍竴涓瓧絎﹁繕鏄竴涓瓧絎︿覆錛烠錛嬶紜璇█娌℃湁瀵瑰畠榪涜鎻忚堪銆?BR><BR>鎵浠ヨ瀹炵幇涓涓垎甯冨紡鏈嶅姟鍖呰錛堟垨浠g悊錛夊簱錛屽繀欏昏鍙戝竷鑰呮彁渚涜繖浜涗俊鎭?BR><BR>鎴戜滑鐭ラ亾錛岃鏌ヨ涓涓繙紼嬫湇鍔★紝蹇呴』鏌ヨ鐩稿簲涓繪満绔彛錛岃幏鍙栨湇鍔′俊鎭傛渶綆鍗曠殑鏈嶅姟淇℃伅鍖呮嫭錛氭湇鍔″垪琛紝姣忎釜鏈嶅姟涓殑鏂規硶鍒楄〃錛屾柟娉曠殑綾誨瀷錛堝寘鎷弬鏁板拰榪斿洖鍊肩被鍨嬶紝in/out淇℃伅絳夛級銆?BR><BR>瀹為檯涓婏紝鎴戜滑鏄涓篊錛嬶紜澧炲姞涓浜涚畝鍗曠殑鑷渷鑳藉姏銆備笂闈㈤偅涓湇鍔″彂甯冩帴鍙o紝瀹為檯涓婄榪欎釜瑕佹眰榪樻湁寰堣繙錛屽啀鏉ョ湅涓涓嬶細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test_func聽(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v1,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};</SPAN></DIV></DIV> <P><BR>鍙互鎯寵錛屽畠鏄病鏈変竴鐐硅嚜鐪佽兘鍔涚殑錛屾垜浠浣曞悜瀹冩煡璇紝瀹冪殑鍚嶅瓧錛熷畠鐨勬柟娉曞垪琛紵鏂規硶鐨勭被鍨嬶紵瀹冨浣曚笌Test綾葷殑鎴愬憳鍑芥暟浠ュ強test_func鍑芥暟鍏寵仈錛?/P> <P>浜屻佹柟鍚戙?BR><BR>瑕佽涓婇潰閭d釜鏈嶅姟鍏鋒湁鑷渷鑳藉姏錛岃鍋氱殑鎵╁厖鍏跺疄騫朵笉澶氥傝冭檻涓嬮潰鐨勪唬鐮侊細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽Service<BR>{<BR>聽聽聽聽TestService聽();<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test1;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test2;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)聽test_func;<BR>};</SPAN></DIV></DIV> <P><BR>榪欏嚑涓狹ethod鍙互鐢ㄨ嚜宸卞啓鐨勫鎵樼被鏉ュ仛銆?BR><BR>1銆佸亣濡傛垜浠湪TestService鐨勬瀯閫犲嚱鏁伴噷緇欏畠鍒嗛厤涓涓淭estService鈥濆悕瀛楋紝騫朵笖Service綾誨疄鐜頒簡鏌ヨ鍚嶅瓧鐨勬帴鍙o紝閭d箞瀹冨氨鐭ラ亾瀹冭嚜宸辯殑鍚嶅瓧浜嗐?BR><BR>2銆佸亣濡傚湪TestService鐨勬瀯閫犲嚱鏁伴噷涓哄悇涓狹ethod鍒嗛厤鍚嶅瓧錛屽茍涓旀敞鍐屽埌TestService錛岄偅涔堝畠灝辮兘澶熸煡璇㈡柟娉曞垪琛ㄣ?BR><BR>3銆佹柟娉曠殑綾誨瀷錛熼氳繃妯℃澘鏂瑰紡錛屾妸鍚勪釜鍙傛暟綾誨瀷鏀墮泦璧鋒潵錛岀粰涓瓧絎︿覆鍚嶇О灝卞彲浠ヤ簡銆?BR><BR>浣跨敤瀹忔潵瀹炵幇錛屽ぇ姒傚彲浠ュ啓鎴愯繖鏍鳳細<BR><BR></P> <P></P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">BEGIN_SERVICE聽(TestService)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func,聽test_func)<BR>END_SERVICE聽()</SPAN></DIV></DIV> <P><BR>閫氳繃涓婇潰榪欏嚑涓畯錛屾垜浠兘澶熺敓鎴怲estService澹版槑銆?BR><BR>涓嶈繃錛屾湁鍑犱釜闂錛岀綏鍒楀涓嬶紝騫朵竴涓瑙e喅瀹冿細<BR><BR>1銆佸浣曟妸鍑芥暟鎸囬拡浼犵粰瀹冿紵濡備綍鎶婃柟娉曞悕縐頒紶緇欏畠錛?BR>榪欎釜鍙槸C錛嬶紜璇█涓烘垜浠鍔犱簡涓浜涢夯鐑︼紝鎴戜滑鏃犳硶鍦ㄥ畾涔夋垚鍛樼殑鍦版柟璋冪敤瀹冪殑鏋勯犲嚱鏁幫紝涓嶈繃榪欏茍涓嶄細閫犳垚澶氬ぇ闅滅銆?BR>涓婇潰鐨凪ETHOD瀹忓鏋滃彧鏄敓鎴愮被鐨勫0鏄庯紝閭d箞鍑芥暟鎸囬拡鍙互鐪佺暐銆傛垜鎶婂畠鍔犱笂鐨勫師鍥犳槸錛屽畠鍙互琚垜鐢–trl+C, Ctrl+V榪欑涓栫晫涓婃渶鍏堣繘鐨勬妧鏈師鏍鋒嫹璐濅笅鏉ワ紝騫朵笖閫氳繃綆鍗曚慨鏀圭殑鏂規硶瀹炵幇榪欑涓栫晫涓婃渶鍏堣繘鐨勯噸鐢ㄣ?BR><BR>涓婇潰鐨勪唬鐮佺粡榪囦慨鏀癸紝緇撴灉灝辨垚榪欐牱錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">BEGIN_SERVICE聽(TestService)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽METHOD聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func,聽test_func)<BR><BR>聽聽聽聽BEGIN_DEFINE聽(TestService)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE(</SPAN><SPAN style="COLOR: #0000ff">int(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func,聽test_func)<BR>聽聽聽聽END_DEFINE聽()<BR><BR>END_SERVICE聽()</SPAN></DIV></DIV> <P><BR>鐪嬩笂鍘誨搴斿緱闈炲父鏁撮綈錛屼慨鏀硅搗鏉ヤ篃姣旇緝綆鍗曘備笂闈㈤偅閮ㄥ垎琚墿鍏呬負濡備笅浠g爜錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽Service<BR>{<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test1;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test2;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)聽test_func;<BR>聽聽聽聽TestService聽()<BR>聽聽聽聽:聽Service聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">TestService</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR>聽聽聽聽{<BR>聽聽聽聽聽聽聽聽test1.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test1</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽test1.setMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test1);<BR>聽聽聽聽聽聽聽聽test2.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test2</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽test2.setMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test2);<BR>聽聽聽聽聽聽聽聽test_func.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test_func</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽test_func.setMethod聽(test_func);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test3);<BR>聽聽聽聽}<BR>};</SPAN></DIV></DIV> <P><BR>鍩烘湰涓婇渶瑕佺殑涓滆タ閮藉湪榪欓噷浜嗐?BR><BR>2銆佸鎴風鐨勯棶棰樸?BR></P> <P>涓婇潰榪欑鏄犲皠錛岀洿鎺ユ嬁鍒板鎴風浼氭湁闂錛孴est綾誨拰test_func鍑芥暟鎴戜滑騫朵笉鎵撶畻浜ょ粰瀹㈡埛绔紝鎵浠ヤ嬌鐢ㄥ嚱鏁版寚閽堜細鍑虹幇閾炬帴閿欒銆?BR><BR>瀹為檯涓婂鎴風涓嶉渶瑕佽繖涓紝鎴戜滑鎯沖姙娉曟妸瀹冩嬁鎺夊氨琛屼簡銆傚鎴風瀹為檯闇瑕佺敓鎴愮殑浠g爜濡備笅錛?BR><BR></P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽TestService聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽Service<BR>{<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test1;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test2;<BR>聽聽聽聽Method聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)聽test_func;<BR>聽聽聽聽TestService聽()<BR>聽聽聽聽:聽Service聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">TestService</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)<BR>聽聽聽聽{<BR>聽聽聽聽聽聽聽聽test1.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test1</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test1);<BR>聽聽聽聽聽聽聽聽test2.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test2</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test2);<BR>聽聽聽聽聽聽聽聽test_func.setName聽(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test_func</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>聽聽聽聽聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">registerMethod聽(</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">test3);<BR>聽聽聽聽}<BR>};</SPAN></DIV></DIV> <P><BR>榪樻槸涓婇潰鎻愬埌鐨勶紝C++緇欐垜浠甫鏉ョ殑楹葷儲銆傝繖嬈¢渶瑕佸彟涓緇勫畯鏉ュ畬鎴愬畠錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">BEGIN_SERVICE_D聽(TestService)<BR>聽聽聽聽METHOD_D聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1)<BR>聽聽聽聽METHOD_D聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2)<BR>聽聽聽聽METHOD_D聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func)<BR><BR>聽聽聽聽BEGIN_DEFINE_D聽(TestService)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE_D聽(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test1)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE_D(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test2)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE_D(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">),聽test_func)<BR>聽聽聽聽END_DEFINE_D聽()<BR><BR>END_SERVICE_D聽()</SPAN></DIV></DIV> <P><BR>METHOD*鍜孧ETHOD_DEFINE*瀹忕殑鍙傛暟閮芥湁涓浜涘浣欑殑淇℃伅錛屾病鏈夊幓鎺夋槸鍥犱負鏀懼湪涓璧峰鏄撶湅鍒板啓閿欑殑鍦版柟銆傦紙榪欎釜鎶宸ф潵婧愪簬鍓嶅嚑澶╃湅鐨勪竴綃嘊LOG錛屽緢鎶ユ瓑娌℃湁璁頒笅鍦板潃錛?BR><BR>3銆佷嬌鐢ㄧ殑闂銆?BR><BR>濡備綍鎵嶈兘姣旇緝鏂逛究鍦頒嬌鐢紵鎴戣冭檻浜嗕笅闈㈣繖縐嶆柟寮忥細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">template聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽IProxy;<BR><BR>template聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽SOAPProxy;<BR><BR>SOAPProxy聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">TestService</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽service;<BR>service.connect聽(</SPAN><SPAN style="COLOR: #000000">5000</SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">localhost</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽a</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">n聽</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">a;<BR>service.test1聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽n);<BR>service.test1聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">n);<BR>service.test2聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽n);<BR>service.test2聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">n);<BR>service.test2聽(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">,聽NONE);<BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"><IMG src="http://m.shnenglu.com/images/dot.gif"></SPAN></DIV></DIV> <P><BR>Method::operator ()鐨勫悇涓弬鏁伴兘灝嗗彲浠ユ帴鍙楃浉瀹圭殑綾誨瀷錛屽儚涓婇潰涓鏍鳳紝鍥犱負鍦═estService涓垜浠凡緇忓畾涔変簡瀹冭浼犺緭鐨勫肩殑綾誨瀷銆?BR><BR>a.NONE鏄粈涔堬紵鍏跺疄鏄負寮傛璋冪敤鑰冭檻鐨勩傚亣濡傛寚瀹氭煇涓狾UT鍙傛暟涓篘ONE錛屽垯榪欎釜鍙傛暟鐨勫煎茍涓嶇湡姝g殑OUT錛岃屾槸淇濆瓨鍦∕ethod涓傚疄闄呬笂Method涓繚瀛樻瘡涓弬鏁扮殑鍊箋?BR><BR>b.Method涓嶴ervice濡備綍鍙戠敓鍏崇郴錛?BR>浠嶵estService鐨勫畾涔変腑鎴戜滑鐭ラ亾錛孧ethod鍚慡ervice娉ㄥ唽鑷繁浠ュ疄鐜拌嚜鐪侊紝浣嗗畠鍚屾椂涔熶細淇濆瓨Service鐨勬寚鍚戙?BR>鎴戜滑鐨凱roxy瀹為檯涓婃槸涓涓戶鎵挎ā鏉匡紝涓婇潰騫舵病鏈夋妸瀹冩寚鍑烘潵銆傚畠鐨勫畾涔夋槸錛?/P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">template聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽T</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">聽XProxy聽:聽</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">聽T<XPROXY><BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"><IMG src="http://m.shnenglu.com/images/dot.gif"></SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">};</SPAN></DIV></DIV> <P><BR>鎵浠ユ垜浠殑TestService鍏跺疄涔熸槸妯℃澘綾伙紝瀹冨皢浣跨敤XProxy涓畾涔夌殑搴忓垪鍖栫被銆俋Proxy灝嗗疄鐜癝ervice鍩虹被涓簭鍒楀寲铏氬嚱鏁頒互鍙婅皟鐢ㄨ櫄鍑芥暟銆?BR><BR>褰撲竴涓狹ethod璋冪敤鏃訛紝瀹冧細璋冪敤Service鐨勫簭鍒楀寲錛岀敱浜庤閲嶅啓浜嗭紝鎵浠ヨ皟鐢ㄧ殑鏄疿Proxy涓殑搴忓垪鍖栨柟娉曘傝繖涓柟娉曚細鎶婅繖涓狹ethod鐨勫悇in/inout鍙傛暟搴忓垪鍖栵紝鐒跺悗鎵ц榪滅▼璋冪敤錛屽啀鎶婅皟鐢ㄧ粨鏋滃弽搴忓垪鍖栫粰inout/out鍙傛暟銆?BR><BR>4銆佸叾瀹冩兂娉曘?BR><BR>鍦ㄨ冭檻涓婇潰鐨勫畾涔夋柟寮忔椂錛屾垜涔熻冭檻浜嗗叾瀹冩柟寮忥紝涓昏鏄繑鍥炲煎鐞嗙殑鏂規硶錛岀畝榪板涓嬨?BR><BR>鍓嶉潰鎴戜滑鍋囪浜嗕竴孌靛皢琚紑鏀句負榪滅▼鏈嶅姟鐨勪唬鐮侊細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽Test<BR>{<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">out</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};<BR><BR></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽test_func聽(</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">in</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">inout</SPAN><SPAN style="COLOR: #008000">*/</SPAN><SPAN style="COLOR: #000000">聽</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);</SPAN></DIV></DIV> <P><BR>鍦ㄥ墠闈㈢殑鍋氭硶涓紝鎴戜滑鐨勬湇鍔℃弿榪版槸鏀懼湪閭d竴緇勫畯閲岄潰錛屽ソ澶勬槸涓嶇敤鏀硅繖孌典唬鐮侊紝鍧忓灝辨槸浠g爜瀹氫箟鐨勫湴鏂瑰拰鎻忚堪涓嶅湪涓璧鳳紝鍗忚皟鍙兘浼氭湁涓浜涗笉渚褲?BR><BR>鎴戜篃鑰冭檻浜嗗彟涓縐嶅仛娉曪細<BR><BR></P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #0000ff">struct</SPAN><SPAN style="COLOR: #000000">聽Test<BR>{<BR>聽聽聽聽idl聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test1聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>聽聽聽聽idl聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">聽test2聽(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);<BR>};<BR><BR>idl聽</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">in</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">,聽inout</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000">)聽test_func聽</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v1,聽</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">聽v2);</SPAN></DIV></DIV> <P><BR>瀵逛簬瀹炵幇浠g爜錛屽彧闇瑕佷慨鏀硅繑鍥炲間負void鐨勫嚱鏁幫紝鎶妑eturn;淇敼涓簉eturn VOID;錛屽茍涓斾負娌℃湁鍐欐璇彞鐨勫垎鏀姞涓婃鍙ャ?BR><BR>VOID鏄竴涓壒孌婄被鍨嬬殑闈欐佸彉閲忥紝涓撲負void榪斿洖鍊肩殑鍑芥暟璁懼畾銆?BR><BR>榪欑鍋氭硶淇敼浜嗗師鏈夌殑浠g爜錛屼笉榪囧湪瀹氫箟鏈嶅姟鏃跺彲浠ヨ妭鐪佷竴浜涘伐浣滐細</P> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><SPAN style="COLOR: #000000">BEGIN_SERVICE聽(TestService)<BR>聽聽聽聽METHOD聽(test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽METHOD聽(test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽METHOD聽(test_func,聽test_func)<BR><BR>聽聽聽聽BEGIN_DEFINE聽(TestService)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE聽(test1,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test1)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE聽(test2,聽</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">Test::test2)<BR>聽聽聽聽聽聽聽聽METHOD_DEFINE聽(test_func,聽test_func)<BR>聽聽聽聽END_DEFINE聽()<BR><BR>END_SERVICE聽()</SPAN></DIV></DIV> <P><BR>瀹冩墍闇瑕佺殑鍑芥暟綾誨瀷錛屽皢鐢卞嚱鏁版寚閽堟帹瀵箋?BR><BR>鍦℅錛嬶紜緙栬瘧鍣ㄤ笅錛屽彲浠ヤ嬌鐢╰ypeof鏉ヨ幏寰楀嚱鏁版寚閽堢殑綾誨瀷鑰屼笉闇瑕佺湡寰楄幏寰楀嚱鏁版寚閽堝鹼紝涓嶈繃鐩墠浠呬粎鍦℅錛嬶紜涓嬪彲鐢ㄣ傦紙欏轟究璇翠竴涓嬶紝typeof宸茬粡鍒楀叆c++0x錛?BR><BR>鏈緇堟垜鏀懼純浜嗚繖涓兂娉曪紝姣曠珶瀹冭淇敼鐜版湁鐨勪唬鐮侊紝鏌愪簺鎯呭喌涓嬭繖鏄笉鍙兘鐨勶紝鑰屼笖typeof鐩墠涔熶笉鑳借法緙栬瘧鍣ㄣ?BR><BR>涓夈佸疄鐜般?BR><BR>鑰佸疄璇存垜鐜板湪榪樻病鏈変竴浠藉畬鏁寸殑鎴栧崐瀹屾暣鐨勫疄鐜幫紝澶ч儴鍒嗘兂娉曡繕鍦ㄥご鑴戜腑錛屾祴璇曚唬鐮佸掓槸鍐欎簡涓嶅皯錛屼富瑕佹槸鐢ㄦ潵嫻嬭瘯涓婅堪鎯蟲硶鑳藉惁瀹炵幇錛屾垜鎯沖ぇ閮ㄥ垎鎯呭喌閮藉凡緇忔祴璇曚簡錛屽彧闇瑕佹湁鏃墮棿鏉ユ妸瀹冨疄鐜板嚭鏉ャ?BR><BR>榪欐槸鎴戣繎鏈熻鍋氱殑浜嬩箣涓錛屼簤鍙栨湀鍐呮妸瀹冨仛瀹岀艦銆?/P><img src ="http://m.shnenglu.com/cpunion/aggbug/272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cpunion/" target="_blank">qiezi</a> 2005-09-15 01:27 <a href="http://m.shnenglu.com/cpunion/archive/2005/09/15/272.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://qvod777.com" target="_blank">欧美日韩国产精品</a>| <a href="http://55kam.com" target="_blank">亚洲靠逼com</a>| <a href="http://caoxiu33.com" target="_blank">999在线观看精品免费不卡网站</a>| <a href="http://bbww55.com" target="_blank">国产专区欧美精品</a>| <a href="http://91ypp.com" target="_blank">一区精品久久</a>| <a href="http://998609.com" target="_blank">亚洲日韩欧美视频一区</a>| <a href="http://492541.com" target="_blank">一本色道久久88综合亚洲精品ⅰ </a>| <a href="http://pinyuanad.com" target="_blank">一区二区电影免费观看</a>| <a href="http://noeljgq.com" target="_blank">99热免费精品在线观看</a>| <a href="http://nebnb89.com" target="_blank">亚洲午夜激情</a>| <a href="http://wwwmm131.com" target="_blank">国产精品免费在线</a>| <a href="http://aimashe.com" target="_blank">国产日韩在线亚洲字幕中文</a>| <a href="http://yeyesaoqi.com" target="_blank">国产一区视频网站</a>| <a href="http://wwwbaoyu66.com" target="_blank">91久久精品久久国产性色也91</a>| <a href="http://www92y.com" target="_blank">99视频精品</a>| <a href="http://556626.com" target="_blank">久久九九久精品国产免费直播</a>| <a href="http://1355456.com" target="_blank">美女久久一区</a>| <a href="http://njggmy.com" target="_blank">一本色道久久综合一区</a>| <a href="http://667996.com" target="_blank">久久av免费一区</a>| <a href="http://yyy922.com" target="_blank">欧美久久久久久久久久</a>| <a href="http://xvideoxxnx.com" target="_blank">国产色视频一区</a>| <a href="http://tfccrk.com" target="_blank">a4yy欧美一区二区三区</a>| <a href="http://772ss.com" target="_blank">久久久99爱</a>| <a href="http://08xxxc.com" target="_blank">日韩亚洲视频在线</a>| <a href="http://by33336.com" target="_blank">久久久水蜜桃</a>| <a href="http://bgflee.com" target="_blank">国产精品试看</a>| <a href="http://h7yy.com" target="_blank">一本一道久久综合狠狠老精东影业</a>| <a href="http://xshgwy.com" target="_blank">午夜亚洲性色福利视频</a>| <a href="http://ww245434.com" target="_blank">欧美成在线观看</a>| <a href="http://7878168.com" target="_blank">性做久久久久久久久</a>| <a href="http://www-440447.com" target="_blank">欧美韩国一区</a>| <a href="http://zhongqingshiye.com" target="_blank">国产一区二区三区视频在线观看</a>| <a href="http://lutube666.com" target="_blank">亚洲美女视频</a>| <a href="http://mathck.com" target="_blank">欧美aⅴ99久久黑人专区</a>| <a href="http://xshgwy.com" target="_blank">亚洲自拍三区</a>| <a href="http://kuaikan97.com" target="_blank">欧美精品激情</a>| <a href="http://k68c.com" target="_blank">亚洲福利视频专区</a>| <a href="http://www-893333.com" target="_blank">久久久精品日韩</a>| <a href="http://bjygp.com" target="_blank">亚洲一区在线观看视频</a>| <a href="http://www-662553.com" target="_blank">欧美黄色aa电影</a>| <a href="http://dehuabz.com" target="_blank">亚洲国产欧美一区二区三区同亚洲</a>| <a href="http://7777525.com" target="_blank">欧美怡红院视频</a>| <a href="http://9881600.com" target="_blank">在线午夜精品自拍</a>| <a href="http://132653.com" target="_blank">欧美日韩中文字幕在线视频</a>| <a href="http://lucky5888.com" target="_blank">亚洲国产一区二区三区青草影视</a>| <a href="http://www-kj8777.com" target="_blank">欧美一区国产在线</a>| <a href="http://yyypdq.com" target="_blank">在线综合亚洲</a>| <a href="http://cuucs.com" target="_blank">欧美日韩三级视频</a>| <a href="http://wce-expo.com" target="_blank">99re热这里只有精品视频</a>| <a href="http://qdssqt.com" target="_blank">欧美粗暴jizz性欧美20</a>| <a href="http://517hc5.com" target="_blank">久久久999</a>| <a href="http://zhipiao998.com" target="_blank">国内精品久久久</a>| <a href="http://4322333.com" target="_blank">久久精品视频播放</a>| <a href="http://korean-edu.com" target="_blank">性欧美大战久久久久久久久</a>| <a href="http://www-94889.com" target="_blank">国产精品日韩精品</a>| <a href="http://378682.com" target="_blank">午夜精品视频在线观看一区二区 </a>| <a href="http://wanzhixue.com" target="_blank">亚洲综合色噜噜狠狠</a>| <a href="http://www-236677.com" target="_blank">欧美三级第一页</a>| <a href="http://www-919198.com" target="_blank">亚洲图片欧洲图片日韩av</a>| <a href="http://zhhtianyi.com" target="_blank">亚洲经典在线看</a>| <a href="http://979695.com" target="_blank">老司机精品导航</a>| <a href="http://c7lc.com" target="_blank">最近中文字幕mv在线一区二区三区四区</a>| <a href="http://zhijiasd.com" target="_blank">久久综合九色99</a>| <a href="http://1588vip.com" target="_blank">久久一区二区三区av</a>| <a href="http://666675com.com" target="_blank">在线精品国精品国产尤物884a</a>| <a href="http://710691.com" target="_blank">久久午夜色播影院免费高清</a>| <a href="http://my777752.com" target="_blank">欧美一区2区视频在线观看</a>| <a href="http://jldianda.com" target="_blank">国产伦精品一区二区</a>| <a href="http://www101804.com" target="_blank">在线日本欧美</a>| <a href="http://520844www.com" target="_blank">欧美.www</a>| <a href="http://nxyhbz.com" target="_blank">欧美高清视频在线观看</a>| <a href="http://bkf23.com" target="_blank">亚洲高清视频中文字幕</a>| <a href="http://www-493049.com" target="_blank">亚洲国产欧洲综合997久久</a>| <a href="http://avhai.com" target="_blank">欧美精品123区</a>| <a href="http://y65o.com" target="_blank">亚洲免费在线</a>| <a href="http://fsxinruiph.com" target="_blank">久久精品国产2020观看福利</a>| <a href="http://199372.com" target="_blank">在线看片日韩</a>| <a href="http://sh738.com" target="_blank">亚洲精品日本</a>| <a href="http://2061375.com" target="_blank">国产精品永久免费视频</a>| <a href="http://7m08.com" target="_blank">欧美sm极限捆绑bd</a>| <a href="http://91ymz.com" target="_blank">欧美日韩免费视频</a>| <a href="http://1194123.com" target="_blank">久久成人18免费网站</a>| <a href="http://97aixxxx.com" target="_blank">久久久久久欧美</a>| <a href="http://3333577.com" target="_blank">一区二区三区国产在线观看</a>| <a href="http://138268.com" target="_blank">亚洲欧美日韩国产成人精品影院</a>| <a href="http://njggmy.com" target="_blank">国语自产精品视频在线看</a>| <a href="http://6u6uuu666.com" target="_blank">欧美激情精品久久久久久变态</a>| <a href="http://sese699.com" target="_blank">欧美日韩国产限制</a>| <a href="http://2cc8.com" target="_blank">久久久欧美一区二区</a>| <a href="http://xxxbobba.com" target="_blank">欧美丰满高潮xxxx喷水动漫</a>| <a href="http://xhs1039.com" target="_blank">午夜精品999</a>| <a href="http://3wbb.com" target="_blank">欧美大尺度在线</a>| <a href="http://km43yy.com" target="_blank">欧美永久精品</a>| <a href="http://959425.com" target="_blank">欧美激情综合亚洲一二区</a>| <a href="http://491342.com" target="_blank">性感少妇一区</a>| <a href="http://www446168.com" target="_blank">欧美大胆人体视频</a>| <a href="http://www19829.com" target="_blank">欧美在线观看视频一区二区</a>| <a href="http://zjkgjt.com" target="_blank">免费短视频成人日韩</a>| <a href="http://gykfqzgpt.com" target="_blank">亚洲一区久久久</a>| <a href="http://nc04.com" target="_blank">免费看亚洲片</a>| <a href="http://pear9.com" target="_blank">欧美一区视频在线</a>| <a href="http://669528.com" target="_blank">欧美chengren</a>| <a href="http://7777977.com" target="_blank">久久精品国产精品亚洲综合</a>| <a href="http://8880850.com" target="_blank">欧美国产视频在线观看</a>| <a href="http://8p3c.com" target="_blank">久久深夜福利</a>| <a href="http://04oy.com" target="_blank">国产精品美女久久</a>| <a href="http://zhengnuoxin.com" target="_blank">女主播福利一区</a>| <a href="http://149155.com" target="_blank">国产精品一区久久</a>| <a href="http://buyiker.com" target="_blank">亚洲精品1234</a>| <a href="http://jlkcjz.com" target="_blank">亚洲国产女人aaa毛片在线</a>| <a href="http://my7877.com" target="_blank">亚洲一区二区免费在线</a>| <a href="http://7811c.com" target="_blank">亚洲精品一二三</a>| <a href="http://hdsywang.com" target="_blank">久久免费高清</a>| <a href="http://hhbz518.com" target="_blank">久久精品国产精品亚洲</a>| <a href="http://jizzdo.com" target="_blank">国产精品卡一卡二卡三</a>| <a href="http://49234c.com" target="_blank">亚洲欧洲日本专区</a>| <a href="http://wwwavtb2049.com" target="_blank">影音先锋欧美精品</a>| <a href="http://daqinhkvip.com" target="_blank">亚洲欧美日韩中文视频</a>| <a href="http://817794.com" target="_blank">亚洲午夜女主播在线直播</a>| <a href="http://www-85489.com" target="_blank">蜜臀av一级做a爰片久久</a>| <a href="http://huaihuaihuai.com" target="_blank">久久国产精品高清</a>| <a href="http://scratbag.com" target="_blank">国产精品超碰97尤物18</a>| <a href="http://xshgwy.com" target="_blank">亚洲国产欧美在线</a>| <a href="http://77xyc77.com" target="_blank">亚洲人成网站在线观看播放</a>| <a href="http://7ccdd.com" target="_blank">久久―日本道色综合久久</a>| <a href="http://bx989.com" target="_blank">久久精品色图</a>| <a href="http://roujizz.com" target="_blank">国产综合香蕉五月婷在线</a>| <a href="http://mmmm57.com" target="_blank">欧美一区二区三区四区在线观看地址 </a>| <a href="http://q731.com" target="_blank">欧美视频一区在线观看</a>| <a href="http://305838.com" target="_blank">亚洲狠狠婷婷</a>| <a href="http://118936.com" target="_blank">91久久线看在观草草青青</a>| <a href="http://18av-77.com" target="_blank">久久一区二区视频</a>| <a href="http://7777525.com" target="_blank">国产亚洲电影</a>| <a href="http://wzxjzx.com" target="_blank">亚洲欧美综合</a>| <a href="http://aqd1t.com" target="_blank">久久福利一区</a>| <a href="http://kdy444.com" target="_blank">国产日韩av一区二区</a>| <a href="http://www8xvi.com" target="_blank">亚洲欧美怡红院</a>| <a href="http://994745.com" target="_blank">久久精品首页</a>| <a href="http://54zcr.com" target="_blank">影音先锋久久久</a>| <a href="http://qqszdq.com" target="_blank">蜜臀av性久久久久蜜臀aⅴ四虎</a>| <a href="http://www-18873.com" target="_blank">欧美一级久久久</a>| <a href="http://jjy891.com" target="_blank">国产日韩精品电影</a>| <a href="http://sdxinqi.com" target="_blank">欧美在线免费观看</a>| <a href="http://tt5125.com" target="_blank">裸体丰满少妇做受久久99精品</a>| <a href="http://www-787333.com" target="_blank">国内精品美女在线观看</a>| <a href="http://emu160.com" target="_blank">久久免费精品视频</a>| <a href="http://6666345.com" target="_blank">亚洲国产精品国自产拍av秋霞</a>| <a href="http://www-787333.com" target="_blank">亚洲国产mv</a>| <a href="http://cn1898.com" target="_blank">欧美精品一线</a>| <a href="http://4480vv.com" target="_blank">国产精品99久久久久久白浆小说</a>| <a href="http://www-222kkk.com" target="_blank">中文av字幕一区</a>| <a href="http://556995.com" target="_blank">国产麻豆成人精品</a>| <a href="http://56718ca.com" target="_blank">久久精品1区</a>| <a href="http://fuqiba.com" target="_blank">欧美国产欧美亚州国产日韩mv天天看完整 </a>| <a href="http://199372.com" target="_blank">欧美sm重口味系列视频在线观看</a>| <a href="http://chenyirong.com" target="_blank">国产欧美日韩综合一区在线播放</a>| <a href="http://xingmaokeji.com" target="_blank">亚洲一区视频在线</a>| <a href="http://mgcc37.com" target="_blank">久久亚洲国产成人</a>| <a href="http://www37999.com" target="_blank">亚洲国产综合视频在线观看</a>| <a href="http://ccc982.com" target="_blank">欧美国产一区视频在线观看</a>| <a href="http://pinyuanad.com" target="_blank">一本久久青青</a>| <a href="http://d1112.com" target="_blank">久久久久久久久久久久久9999 </a>| <a href="http://m10669.com" target="_blank">一本久道久久综合婷婷鲸鱼</a>| <a href="http://xxmh686.com" target="_blank">欧美日韩另类综合</a>| <a href="http://707377c.com" target="_blank">欧美一区二区观看视频</a>| <a href="http://039658.com" target="_blank">欧美 亚欧 日韩视频在线</a>| <a href="http://50ud.com" target="_blank">日韩午夜在线观看视频</a>| <a href="http://sewuyueyue.com" target="_blank">国产精品久久久久婷婷</a>| <a href="http://www-49hk.com" target="_blank">久久www成人_看片免费不卡</a>| <a href="http://smdzs.com" target="_blank">亚洲国产成人在线</a>| <a href="http://aaa798.com" target="_blank">香港久久久电影</a>| <a href="http://817794.com" target="_blank">亚洲国产成人高清精品</a>| <a href="http://2061826.com" target="_blank">欧美日韩在线精品</a>| <a href="http://613by.com" target="_blank">久久久久久亚洲精品不卡4k岛国</a>| <a href="http://zytxkj.com" target="_blank">亚洲国内自拍</a>| <a href="http://4439x9.com" target="_blank">久久激情五月婷婷</a>| <a href="http://ffff53.com" target="_blank">亚洲精品小视频</a>| <a href="http://kanzhelu31.com" target="_blank">国产一区二区福利</a>| <a href="http://85995m.com" target="_blank">欧美精品激情</a>| <a href="http://3dxxoo.com" target="_blank">久久国产精品99国产精</a>| <a href="http://wzxjzx.com" target="_blank">99精品福利视频</a>| <a href="http://8847m.com" target="_blank">另类综合日韩欧美亚洲</a>| <a href="http://7504329.com" target="_blank">亚洲一区视频在线</a>| <a href="http://kk8c.com" target="_blank">亚洲国产一区在线</a>| <a href="http://shenduzhongcao.com" target="_blank">国产视频一区在线</a>| <a href="http://m72722.com" target="_blank">欧美手机在线视频</a>| <a href="http://482b.com" target="_blank">欧美高清在线精品一区</a>| <a href="http://tavbao.com" target="_blank">久久成人精品</a>| <a href="http://4448884.com" target="_blank">一区二区三区你懂的</a>| <a href="http://taikonghua.com" target="_blank">欧美韩日一区</a>| <a href="http://8004006.com" target="_blank">美女黄毛**国产精品啪啪</a>| <a href="http://ccc159.com" target="_blank">午夜精品视频在线</a>| <a href="http://tzhsdy.com" target="_blank">一本一本大道香蕉久在线精品</a>| <a href="http://18p2.com" target="_blank">国产亚洲精品美女</a>| <a href="http://www-440447.com" target="_blank">国产精品麻豆va在线播放</a>| <a href="http://cpb-group.com" target="_blank">欧美精品福利</a>| <a href="http://22abb.com" target="_blank">欧美xx69</a>| <a href="http://www492002.com" target="_blank">久久综合色婷婷</a>| <a href="http://215920.com" target="_blank">欧美在线影院</a>| <a href="http://pfpf66.com" target="_blank">欧美一区二区三区四区在线观看 </a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>