锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日本精品久久久久影院日本 ,成人妇女免费播放久久久,久久精品国产72国产精福利http://m.shnenglu.com/jaxe/category/11789.htmlFreeBSD銆丩inux涓嬮珮鎬ц兘緗戠粶娓告垙鏈嶅姟鍣ㄥ紑鍙?-姝﹀姛楂樹篃鎬曡彍鍒zh-cnTue, 06 Jul 2010 03:47:42 GMTTue, 06 Jul 2010 03:47:42 GMT60Boost.Program_options涓殑涓涓嚱鏁板紡緙栫▼鐨勪緥瀛?/title><link>http://m.shnenglu.com/jaxe/archive/2010/07/05/119385.html</link><dc:creator>嫻╂瘺</dc:creator><author>嫻╂瘺</author><pubDate>Mon, 05 Jul 2010 15:08:00 GMT</pubDate><guid>http://m.shnenglu.com/jaxe/archive/2010/07/05/119385.html</guid><wfw:comment>http://m.shnenglu.com/jaxe/comments/119385.html</wfw:comment><comments>http://m.shnenglu.com/jaxe/archive/2010/07/05/119385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/jaxe/comments/commentRss/119385.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/jaxe/services/trackbacks/119385.html</trackback:ping><description><![CDATA[    boost閲岀殑program_options鎻愪緵紼嬪簭鍛樹竴縐嶆柟渚跨殑鍛戒護(hù)琛屽拰閰嶇疆鏂囦歡榪涜紼嬪簭閫夐」璁劇疆鐨勬柟娉曘?br>    鍏舵枃妗d緥瀛愪腑鏈夊涓嬩唬鐮侊細(xì)<br>    <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008080">1</span> <span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> boost::program_options;<br></span><span style="COLOR: #008080">2</span> <span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">澹版槑闇瑕佺殑閫夐」</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">3</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">options_description desc(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Allowed options</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">4</span> <span style="COLOR: #000000">desc.add_options()<br></span><span style="COLOR: #008080">5</span> <span style="COLOR: #000000">        (</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">help,h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">produce help message</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">6</span> <span style="COLOR: #000000">        (</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">person,p</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, value</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">default_value(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">world</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">), </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">who</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);</span></div> <br>    鐪嬬4鍒?琛岋紝鏄笉鏄劅瑙夊緢鎬紵榪欑鏂瑰紡浣撶幇浜?jiǎn)鍑芥暟寮従~栫▼涓渶澶х殑鐗圭偣錛氬嚱鏁版槸涓綾誨鹼紝寮曠敤璧勬枡鏉ヨ,<em>鎵璋?#8220;鍑芥暟鏄竴綾誨鹼紙F(tuán)irst Class Value錛?#8221;鎸囩殑鏄嚱鏁板拰鍊兼槸鍚岀瓑鐨勬蹇碉紝涓涓嚱鏁板彲浠ヤ綔涓哄彟澶栦竴涓嚱鏁扮殑鍙傛暟錛屼篃鍙互浣滀負(fù)鍊間嬌鐢ㄣ傚鏋滃嚱鏁板彲浠ヤ綔涓轟竴綾誨間嬌鐢紝閭d箞鎴戜滑灝卞彲浠ュ啓鍑轟竴浜涘嚱鏁幫紝浣垮緱榪欎簺鍑芥暟鎺ュ彈鍏跺畠鍑芥暟浣滀負(fù)鍙傛暟騫惰繑鍥炲彟澶栦竴涓嚱鏁般傛瘮濡傚畾涔変簡(jiǎn)f鍜実涓や釜鍑芥暟錛岀敤compose(f,g)鐨勯鏍煎氨鍙互鐢熸垚鍙﹀涓涓嚱鏁幫紝浣垮緱榪欎釜鍑芥暟鎵цf(g(x))鐨勬搷浣滐紝鍒欏彲縐癱ompose涓洪珮闃跺嚱鏁幫紙Higher-order Function錛夈?br><br></em>    program_options閲岀殑榪欑鏂瑰紡鏄庝箞瀹炵幇鐨勫憿錛熼氳繃鍒嗘瀽boost鐨勬簮浠g爜錛屾垜浠嚜宸辨潵鍐欎釜綾諱技鐨勫疄鐜扮湅鐪嬶細(xì)<br>     test.h    <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000">#pragma once<br></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> std;<br></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Test;<br></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Test_easy_init<br></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">    Test_easy_init(Test</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> owner):m_owner(owner){}<br></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000">    Test_easy_init </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">operator</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"> name);<br></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000">    Test_easy_init </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">operator</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"> name,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> id);<br></span><span style="COLOR: #008080">15</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000">    Test</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> m_owner;<br></span><span style="COLOR: #008080">17</span> <span style="COLOR: #000000">};<br></span><span style="COLOR: #008080">18</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">19</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">20</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Test<br></span><span style="COLOR: #008080">21</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">22</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">23</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> add(</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"> name);<br></span><span style="COLOR: #008080">24</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> add(</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"> name,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> id);<br></span><span style="COLOR: #008080">25</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">26</span> <span style="COLOR: #000000">    Test_easy_init add_some();<br></span><span style="COLOR: #008080">27</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">28</span> <span style="COLOR: #000000">};</span></div> <br>test.cpp<br> <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000">Test_easy_init </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000"> Test_easy_init::</span><span style="COLOR: #0000ff">operator</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"> name,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> id)<br></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000">    m_owner</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">add(name,id);<br></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">}<br></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">Test_easy_init </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000"> Test_easy_init::</span><span style="COLOR: #0000ff">operator</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"> name)<br></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000">    m_owner</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">add(name);<br></span><span style="COLOR: #008080">15</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">17</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">18</span> <span style="COLOR: #000000">Test_easy_init Test::add_some()<br></span><span style="COLOR: #008080">19</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">20</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> Test_easy_init(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">21</span> <span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">22</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">23</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">24</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Test::add(</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"> name)<br></span><span style="COLOR: #008080">25</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">26</span> <span style="COLOR: #000000">    cout</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">add:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">name</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">endl;<br></span><span style="COLOR: #008080">27</span> <span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">28</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">29</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Test::add(</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"> name,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> id)<br></span><span style="COLOR: #008080">30</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">31</span> <span style="COLOR: #000000">    cout</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">add:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><<</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">id</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">endl;<br></span><span style="COLOR: #008080">32</span> <span style="COLOR: #000000">}</span></div> <br>浣跨敤鏂瑰紡錛?br> <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008080">1</span> <span style="COLOR: #000000">Test t1;<br></span><span style="COLOR: #008080">2</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">3</span> <span style="COLOR: #000000">t1.add_some()<br></span><span style="COLOR: #008080">4</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">,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">5</span> <span style="COLOR: #000000">    (</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">no id</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">6</span> <span style="COLOR: #000000">    (</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);</span></div> <br>鏄笉鏄緢鏈夋剰鎬濄俛dd_some()鏂規(guī)硶榪斿洖涓涓猅est_easy_init綾葷殑瀵硅薄錛孴est_easy_init綾婚噸杞戒簡(jiǎn)鎿嶄綔絎?)錛屾搷浣滅()鏂規(guī)硶榪斿洖Test_easy_init綾誨璞¤嚜韜殑寮曠敤銆傘? <img src ="http://m.shnenglu.com/jaxe/aggbug/119385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jaxe/" target="_blank">嫻╂瘺</a> 2010-07-05 23:08 <a href="http://m.shnenglu.com/jaxe/archive/2010/07/05/119385.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓涓畝鍗曞疄鐢ㄧ殑鍐呭瓨姹犲疄鐜頒箣浜?錛圕瀹炵幇錛?/title><link>http://m.shnenglu.com/jaxe/archive/2009/09/27/97362.html</link><dc:creator>嫻╂瘺</dc:creator><author>嫻╂瘺</author><pubDate>Sun, 27 Sep 2009 06:50:00 GMT</pubDate><guid>http://m.shnenglu.com/jaxe/archive/2009/09/27/97362.html</guid><wfw:comment>http://m.shnenglu.com/jaxe/comments/97362.html</wfw:comment><comments>http://m.shnenglu.com/jaxe/archive/2009/09/27/97362.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://m.shnenglu.com/jaxe/comments/commentRss/97362.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/jaxe/services/trackbacks/97362.html</trackback:ping><description><![CDATA[     鎽樿:     涓婁竴綃囧唴瀛樻睜鐨勫疄鐜板叾瀹炴洿鍍忎竴涓悗澶囧垪琛ㄧ殑瀹炵幇銆備嬌鐢ㄤ笂鏉ヨ涓嶆槸寰堟柟渚匡紝瑕佺敵璇風(fēng)殑鍐呭瓨鍧楁槸涓涓狟LOCK緇撴瀯鐨勪竴涓釜鎴愬憳錛岃屼笖姣忔浠庣郴緇熷唴瀛樺爢涓敵璇烽兘鏄竴灝忓潡涓灝忓潡錛屼篃娌℃湁鑰冭檻瀛楄妭瀵歸綈銆傚洜姝よ鎴戜滑鏉ョ湅鐪嬫柊鐨勪竴涓唴瀛樻睜鐨勫疄鐜板惂銆?nbsp;   榪欎釜鍐呭瓨姹犳槸鏍規(guī)嵁銆奵++搴旂敤紼嬪簭鎬ц兘浼樺寲銆嬩功閲岀殑鍥哄畾灝哄鐨勫唴瀛樻睜鍘熺悊鍋氫簡(jiǎn)涓浜涙敼鍔ㄧ敤C璇█鍐欑殑銆傚ぇ瀹舵湁鍏磋叮...  <a href='http://m.shnenglu.com/jaxe/archive/2009/09/27/97362.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/jaxe/aggbug/97362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jaxe/" target="_blank">嫻╂瘺</a> 2009-09-27 14:50 <a href="http://m.shnenglu.com/jaxe/archive/2009/09/27/97362.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓涓畝鍗曞疄鐢ㄧ殑鍐呭瓨姹犱箣涓錛坈瀹炵幇)http://m.shnenglu.com/jaxe/archive/2009/09/17/96581.html嫻╂瘺嫻╂瘺Thu, 17 Sep 2009 14:34:00 GMThttp://m.shnenglu.com/jaxe/archive/2009/09/17/96581.htmlhttp://m.shnenglu.com/jaxe/comments/96581.htmlhttp://m.shnenglu.com/jaxe/archive/2009/09/17/96581.html#Feedback17http://m.shnenglu.com/jaxe/comments/commentRss/96581.htmlhttp://m.shnenglu.com/jaxe/services/trackbacks/96581.html
     鍋氳繃涓涓畝鍗曠殑嫻嬭瘯錛?0涓囨鍐呭瓨姹犺皟鐢ㄧ殑鏁堢巼澶ф姣旂洿鎺ュ垎閰嶉噴鏀懼唴瀛樻彁楂樹簡(jiǎn)30-50%銆備絾鏄墠鎻愭槸鍐呭瓨姹犱笉鑳藉姞閿侊紙pthread_mutex錛夛紝鍔犻攣鐨勫唴瀛樻睜鏁堢巼鍜岀洿鎺ュ垎閰嶅唴瀛樼殑鏁堢巼宸笉澶氾紝鏈夋椂鍊欒繕瑕佸鐐圭偣銆傦紙嫻嬭瘯鐨勭幆澧冩槸姣忔2K錛?涓弻鏍窩PU錛孎REEBSD7錛?br>
浠g爜瀹炵幇錛?br>
struct memblock
{
   
int              used;
   
void*            data;
   
struct memblock* next;
   
struct memblock* createnext;
}
;


struct mempool
{
    
int            size;//memblock澶у皬
    int            unused;//絀洪棽鐨刴emblock澶у皬
    int            datasize;//姣忔鍒嗛厤鐨勬暟鎹ぇ灝?灝辨槸memblock.data)
    struct memblock*    free_linkhead;//絀洪棽memblock閾捐〃澶?/span>
    struct memblock*    create_linkhead;//鎵鏈夊垱寤虹殑memblock閾捐〃澶達(dá)紝鍐呭瓨姹犻噴鏀劇殑鏃跺欎嬌鐢紝闃叉鍐呭瓨姹犻噴鏀劇殑浼間箮榪樻湁memblock鏈綊榪樼殑鎯呭喌
    
};
typedef 
void (*free_callback)(void*);//閲婃斁鍥炶皟鍑芥暟錛岄噴鏀緈embloc.data鐢紝鍙互綆鍗曠殑鐩存帴鐢╢ree鍑芥暟

void    mempool_init(int initialSize,int datasize);//鍒濆鍖杕empool
void    mempool_dealloc(struct mempool* pool,free_callback callback);//閲婃斁mempool
void*    mempool_get(struct mempool* pool);//鑾峰彇涓涓猰emblock
void    mempool_release(struct mempool* pool,struct memblock* block);//褰掕繕涓涓猰emblock

/*********************************
 * mempool
 * *****************************
*/
//malloc涓涓猰emblock
static struct memblock* mempool_allocblock( struct mempool* pool );

//------------------implement--------
void*
mempool_init( 
int initialSize, int datasize )
{
    
struct mempool* pool = malloc( sizeofstruct mempool ) );
    pool
->unused = 0;
    pool
->datasize = datasize;
    pool
->free_linkhead = NULL;
  
    
//棰勫厛鍒濆鍖杋nitialSize涓唴瀛樺潡
     pool->create_linkhead = NULL;
    
int i;
    
for ( i = 0; i < initialSize; i++ ) {
        
struct memblock* block = mempool_allocblock( pool );
        mempool_release( pool, block );
    }
    
return ( pool );
}

void
mempool_dealloc( 
struct mempool* pool, free_callback callback )
{
    
struct memblock* block = NULL;
    
//灝嗘墍鏈夊垱寤虹殑memblock閲婃斁浜?/span>
    while ( pool->create_linkhead != NULL ) {
        block 
= pool->create_linkhead;
        pool
->create_linkhead = pool->create_linkhead->createnext;
    
//鎵цfree鍥炶皟銆?/span>
        if ( callback ) {
            ( 
*callback )( block->data );
        }
        free( block );
    }
    free( pool );
    L_DEBUG( 
"%s:size(%d),unused(%d)", __func__, pool->size, pool->unused );
}

static struct memblock*
mempool_allocblock( 
struct mempool* pool )
{
    
struct memblock* block = malloc( sizeofstruct memblock ) );
    block
->data = malloc( sizeof( pool->datasize ) );
    block
->next = NULL;
    block
->used = 1;//琛ㄧず宸蹭嬌鐢?br>
    
//鍔犲叆鎵鏈夊垱寤虹殑memblock鐨勯摼琛ㄥご
    block->createnext = pool->create_linkhead;
    pool
->create_linkhead = block;

    pool
->size++;
    
return ( block );
}

void
mempool_release( 
struct mempool* pool, struct memblock* block )
{
    
if ( block == NULL ) {
        L_WARN( 
"%s:release a NULL!", __func__ );
        
return;
    }
    
if ( block->used != 1 ) {
        L_WARN( 
"%s:used!=1", __func__ );
        
return;
    }
    
//灝嗗綊榪樼殑鍐呭瓨鍧楁斁鍒扮┖闂查摼琛ㄥご銆?/span>
    block->used = 0;//琛ㄧず絀洪棽
    block->next = pool->free_linkhead;
    pool
->free_linkhead = block;
    pool
->unused++;//絀洪棽鏁?1
}

void*
mempool_get( 
struct mempool* pool )
{
   
    
struct memblock* block = NULL;
    
if ( pool->free_linkhead ) {
    
//浠庣┖闂查摼琛ㄥご鍙栧嚭涓涓唴瀛樺潡
        block = pool->free_linkhead;
        pool
->free_linkhead = pool->free_linkhead->next;
        block
->next = NULL;
        block
->used = 1;//琛ㄧず宸蹭嬌鐢?/span>
        pool->unused--;//絀洪棽鍐呭瓨鍧楁暟-1
    }
    
else {
    
//娌℃湁絀洪棽鐨勫唴瀛樺潡錛屽垱寤轟竴涓?/span>
        block = mempool_allocblock( pool );
    }
    
return ( block );
}


嫻╂瘺 2009-09-17 22:34 鍙戣〃璇勮
]]>
精品久久久久久无码不卡| 久久中文字幕精品| 伊人久久免费视频| 色欲综合久久躁天天躁| 亚洲国产一成人久久精品| 欧美一区二区精品久久| 欧美久久一区二区三区| AV无码久久久久不卡蜜桃| 久久精品国产72国产精福利| 一本一道久久综合狠狠老| 一本久久久久久久| 久久综合九色综合网站| 日日狠狠久久偷偷色综合96蜜桃| 日韩精品无码久久久久久| 久久91精品国产91久| 久久93精品国产91久久综合| 国产精品免费福利久久| 久久人人爽人人爽人人片AV麻烦| 久久精品国产91久久综合麻豆自制 | 久久综合伊人77777| 久久国产精品无码一区二区三区| 无码任你躁久久久久久久| 久久国产乱子伦精品免费强| 久久亚洲精品中文字幕| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 亚洲色欲久久久久综合网 | 日日狠狠久久偷偷色综合96蜜桃 | 久久综合久久自在自线精品自| 亚洲性久久久影院| 久久精品国产色蜜蜜麻豆| 狠狠色丁香久久婷婷综| 久久国产乱子伦免费精品| 久久无码人妻一区二区三区午夜| 久久夜色精品国产噜噜亚洲a| 久久久久久亚洲精品不卡| 久久精品成人一区二区三区| 久久99精品国产麻豆婷婷| 国产日韩久久免费影院| 国产午夜精品久久久久九九| 久久精品国产72国产精福利| 久久人人爽人人澡人人高潮AV|