锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日本精品久久久久影院日本 ,成人妇女免费播放久久久,久久精品国产72国产精福利http://www.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://www.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://www.shnenglu.com/jaxe/archive/2010/07/05/119385.html</guid><wfw:comment>http://www.shnenglu.com/jaxe/comments/119385.html</wfw:comment><comments>http://www.shnenglu.com/jaxe/archive/2010/07/05/119385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jaxe/comments/commentRss/119385.html</wfw:commentRss><trackback:ping>http://www.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://www.shnenglu.com/jaxe/aggbug/119385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jaxe/" target="_blank">嫻╂瘺</a> 2010-07-05 23:08 <a href="http://www.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://www.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://www.shnenglu.com/jaxe/archive/2009/09/27/97362.html</guid><wfw:comment>http://www.shnenglu.com/jaxe/comments/97362.html</wfw:comment><comments>http://www.shnenglu.com/jaxe/archive/2009/09/27/97362.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/jaxe/comments/commentRss/97362.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jaxe/services/trackbacks/97362.html</trackback:ping><description><![CDATA[     鎽樿:     涓婁竴綃囧唴瀛樻睜鐨勫疄鐜板叾瀹炴洿鍍忎竴涓悗澶囧垪琛ㄧ殑瀹炵幇銆備嬌鐢ㄤ笂鏉ヨ涓嶆槸寰堟柟渚匡紝瑕佺敵璇風(fēng)殑鍐呭瓨鍧楁槸涓涓狟LOCK緇撴瀯鐨勪竴涓釜鎴愬憳錛岃屼笖姣忔浠庣郴緇熷唴瀛樺爢涓敵璇烽兘鏄竴灝忓潡涓灝忓潡錛屼篃娌℃湁鑰冭檻瀛楄妭瀵歸綈銆傚洜姝よ鎴戜滑鏉ョ湅鐪嬫柊鐨勪竴涓唴瀛樻睜鐨勫疄鐜板惂銆?nbsp;   榪欎釜鍐呭瓨姹犳槸鏍規(guī)嵁銆奵++搴旂敤紼嬪簭鎬ц兘浼樺寲銆嬩功閲岀殑鍥哄畾灝哄鐨勫唴瀛樻睜鍘熺悊鍋氫簡(jiǎn)涓浜涙敼鍔ㄧ敤C璇█鍐欑殑銆傚ぇ瀹舵湁鍏磋叮...  <a href='http://www.shnenglu.com/jaxe/archive/2009/09/27/97362.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jaxe/aggbug/97362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jaxe/" target="_blank">嫻╂瘺</a> 2009-09-27 14:50 <a href="http://www.shnenglu.com/jaxe/archive/2009/09/27/97362.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓涓畝鍗曞疄鐢ㄧ殑鍐呭瓨姹犱箣涓錛坈瀹炵幇)http://www.shnenglu.com/jaxe/archive/2009/09/17/96581.html嫻╂瘺嫻╂瘺Thu, 17 Sep 2009 14:34:00 GMThttp://www.shnenglu.com/jaxe/archive/2009/09/17/96581.htmlhttp://www.shnenglu.com/jaxe/comments/96581.htmlhttp://www.shnenglu.com/jaxe/archive/2009/09/17/96581.html#Feedback17http://www.shnenglu.com/jaxe/comments/commentRss/96581.htmlhttp://www.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红樱桃| 狼狼综合久久久久综合网| 日韩十八禁一区二区久久| 国产午夜电影久久| 国产精品欧美久久久久无广告| 国产69精品久久久久777| 国产精品久久久久影院嫩草| 99re久久精品国产首页2020| 狠狠久久亚洲欧美专区 | 久久婷婷综合中文字幕| 99久久99这里只有免费费精品| 99久久久国产精品免费无卡顿 | AA级片免费看视频久久| 亚洲国产二区三区久久| 国产精品gz久久久| 亚洲国产精品综合久久一线| 国产精品久久久久久久app| 精品伊人久久久| 久久久久久久久久久久中文字幕| 国产成人久久精品激情| 久久久精品视频免费观看| 欧美久久综合九色综合| 亚洲日韩中文无码久久| 麻豆精品久久精品色综合| 久久久久国产一级毛片高清板| 久久亚洲中文字幕精品一区| 国产精品美女久久久m| 四虎国产精品免费久久5151| 欧美黑人激情性久久| 久久99国产精一区二区三区| 91久久成人免费| 亚洲午夜久久久久久噜噜噜| 国产福利电影一区二区三区,免费久久久久久久精 | 亚洲AV无码一区东京热久久| www久久久天天com| 日本久久久久久久久久| 国产精品对白刺激久久久| 韩国无遮挡三级久久| 国产成人综合久久精品红| 久久综合久久综合九色|