﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-CPP&amp;&amp;设计模式小屋-随笔分类-Modern C++ Design,BOOST,LOKI</title><link>http://www.cppblog.com/shenhuafeng/category/2616.html</link><description>(STL,Templete,Generric Programming COM,COM+,ActiveX)---Windows &amp;&amp; Linux &amp;&amp;OpenSource
</description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 00:47:34 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 00:47:34 GMT</pubDate><ttl>60</ttl><item><title>boost库---系列解读一</title><link>http://www.cppblog.com/shenhuafeng/archive/2007/02/19/18869.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Mon, 19 Feb 2007 06:50:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2007/02/19/18869.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/18869.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2007/02/19/18869.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/18869.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/18869.html</trackback:ping><description><![CDATA[
		<p align="left">版权所有 未经作者允许 不得用于商业用途 转载请附带这第一,二行<br /><a href="/shenhuafeng/"><font color="#3468a4">http://www.cppblog.com/shenhuafeng/</font></a></p>
		<h1 align="center">BOOST库的使用</h1>
		<ol>
				<li>
						<div align="left">下载Boost库 从<a href="http://www.boost.org/">http://www.boost.org/</a>下载最新的boost1.330.1库。</div>
				</li>
				<li>
						<div align="left">解压缩到系统的任意目录。</div>
				</li>
				<li>
						<div align="left">编译BJam编译工具： 
<p>开始-&gt;程序-&gt;Microsoft Visual Studio .NET 2003<br />-&gt;Visual Studio .NET 工具"-&gt;"Visual Studio .NET 2003 命令提示"<br />然后在此环境下切换到boost_1_33_1\tools\build\jam_src目录:<br />运行build编译。键入build进行bjam的编译。</p></div>
				</li>
				<li>
						<div align="left">
								<p>将bjam.exe拷贝到根目录底下，运行bjam，进行Boost库的编译如果是VC2005的话，则需要加参数bjam <font color="#0000ff">sTOOLS=vc-8_0</font></p>
						</div>
				</li>
				<li>
						<div align="left">
								<p>将boost的源文件以及库放到IDE工具能够找到的地方，这样就完成了安装。</p>
						</div>
				</li>
		</ol>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/18869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2007-02-19 14:50 <a href="http://www.cppblog.com/shenhuafeng/archive/2007/02/19/18869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模版偏特化--Partial Template Specialization(《Modern C++ Design读书笔记二》)</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/12/30/17041.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Sat, 30 Dec 2006 09:30:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/12/30/17041.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/17041.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/12/30/17041.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/17041.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/17041.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Partial Template Specialization顾名思义，模版偏特化就是对模版进行特化的意思。举个例子：namespace SHFTest{    template&lt;            class PLA,            class PLB            &gt;    class PLClass    {        //        // 一般实现 ...&nbsp;&nbsp;<a href='http://www.cppblog.com/shenhuafeng/archive/2006/12/30/17041.html'>阅读全文</a><img src ="http://www.cppblog.com/shenhuafeng/aggbug/17041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-12-30 17:30 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/12/30/17041.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>已经看的，正在看的和想看的书籍</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/12/30/17039.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Sat, 30 Dec 2006 08:14:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/12/30/17039.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/17039.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/12/30/17039.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/17039.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/17039.html</trackback:ping><description><![CDATA[
		<p>最近已经完成阅读的书：《STL源码剖析》--侯捷<br />                                            《TCP/IP详解》第一卷<br /><br />最近准备阅读的书：《Moden C++ Design》英文版--<br />                                    电子书（最好有Template基础和看过《设计模式》）<br />                                   《代码大全》--上次看了5章<br />                                   《深入探索C++对象模型》<br /><br />将要看的书：《TCP/IP详解》第二卷和第三卷。<br />                       《应用密码学》<br /><br />很希望和大家做交流，我把《Moden C++ Design》英文版上传到我的文件里面了，需要的朋友自取。<br /></p>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/17039.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-12-30 16:14 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/12/30/17039.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Policy Based Class Design--《Modern C++ Design》读后感一 </title><link>http://www.cppblog.com/shenhuafeng/archive/2006/12/26/16880.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Tue, 26 Dec 2006 11:14:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/12/26/16880.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/16880.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/12/26/16880.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/16880.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/16880.html</trackback:ping><description><![CDATA[
		<div class="postText">
				<p>前不久阅读了一下 Andrei Alexandrescu的大作《Modern C++ Design》，深受启发。现写一些读后感，一个是促进自己学习，二者是希望大家交流，抛砖引玉。</p>
				<p>说到底Policy Based Class Design是基于Templete模版的Templete组件设计技术，就是用内Templete来作为Policy为外Templete提供可配置的服务。</p>
				<p>例如：</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">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #000000"> template </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">  T,Template </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">   </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">   Policy1,Template </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">  Policy2  </span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000"> <br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">  PolicyBasedClass：</span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> Policy1 </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000"> T </span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000"> ,</span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> Policy2 </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000"> T </span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000"> <br /><img id="Codehighlighter1_168_170_Open_Image" onclick="this.style.display='none'; Codehighlighter1_168_170_Open_Text.style.display='none'; Codehighlighter1_168_170_Closed_Image.style.display='inline'; Codehighlighter1_168_170_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_168_170_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_168_170_Closed_Text.style.display='none'; Codehighlighter1_168_170_Open_Image.style.display='inline'; Codehighlighter1_168_170_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />   </span>
						<span id="Codehighlighter1_168_170_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cppblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_168_170_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
						</span>
						<span style="COLOR: #000000"> </span>
				</div>
				<p>
						<br />当然Policy1也可以不依赖于模版T。同样Policy2也可以。这样也当然也可以。</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">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #000000"> template </span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">  T, </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">   Policy1,</span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">  Policy2  </span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000"> <br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">  PolicyBasedClass：</span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> Policy1 ,</span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> Policy2<br /><img id="Codehighlighter1_113_115_Open_Image" onclick="this.style.display='none'; Codehighlighter1_113_115_Open_Text.style.display='none'; Codehighlighter1_113_115_Closed_Image.style.display='inline'; Codehighlighter1_113_115_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_113_115_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_113_115_Closed_Text.style.display='none'; Codehighlighter1_113_115_Open_Image.style.display='inline'; Codehighlighter1_113_115_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
						<span id="Codehighlighter1_113_115_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cppblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_113_115_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
						</span>
						<span style="COLOR: #000000"> </span>
				</div>
				<p> </p>
				<p>当然第一个例子更加具有通用性。</p>
				<p>这样你可以代入不同的Policy Class，来改变PolicyBasedClass的行为。</p>
				<p>而所有的配置都是在编译阶段完成的，而不是RunTime，所以没有任何的性能损失。</p>
				<p>有人说，我可以加个参数，对这个Class做重载，当然是可以的，而且可以获得运行时刻的灵活性，当然系统的开销相对也会大一些。</p>
				<p>所以个人认为，PolicyBasedClass更加适合于做一些Framework的工作。例如设计一个基础的框架库，这个技术就很实用。所以Loki也是这样子的一个库。</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: 95%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
						<div>
								<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />
								<span style="COLOR: #0000ff">namespace</span>
								<span style="COLOR: #000000"> SHFTest<br /><img id="_18_926_Open_Image" onclick="this.style.display='none'; document.getElementById('_18_926_Open_Text').style.display='none'; document.getElementById('_18_926_Closed_Image').style.display='inline'; document.getElementById('_18_926_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="_18_926_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_18_926_Closed_Text').style.display='none'; document.getElementById('_18_926_Open_Image').style.display='inline'; document.getElementById('_18_926_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
								<span id="_18_926_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
								<span id="_18_926_Open_Text">
										<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    template </span>
										<span style="COLOR: #000000">&lt;</span>
										<span style="COLOR: #0000ff">class</span>
										<span style="COLOR: #000000"> T</span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000">
												<br />
												<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
										<span style="COLOR: #0000ff">struct</span>
										<span style="COLOR: #000000"> OpNewCreator<br /><img id="_62_144_Open_Image" onclick="this.style.display='none'; document.getElementById('_62_144_Open_Text').style.display='none'; document.getElementById('_62_144_Closed_Image').style.display='inline'; document.getElementById('_62_144_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_62_144_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_62_144_Closed_Text').style.display='none'; document.getElementById('_62_144_Open_Image').style.display='inline'; document.getElementById('_62_144_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
										<span id="_62_144_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
										<span id="_62_144_Open_Text">
												<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />        </span>
												<span style="COLOR: #0000ff">static</span>
												<span style="COLOR: #000000"> T</span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000"> Create()<br /><img id="_87_108_Open_Image" onclick="this.style.display='none'; document.getElementById('_87_108_Open_Text').style.display='none'; document.getElementById('_87_108_Closed_Image').style.display='inline'; document.getElementById('_87_108_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_87_108_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_87_108_Closed_Text').style.display='none'; document.getElementById('_87_108_Open_Image').style.display='inline'; document.getElementById('_87_108_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span id="_87_108_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_87_108_Open_Text">
														<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />            </span>
														<span style="COLOR: #0000ff">return</span>
														<span style="COLOR: #000000"> </span>
														<span style="COLOR: #0000ff">new</span>
														<span style="COLOR: #000000"> T;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
														<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
												<span style="COLOR: #0000ff">protected</span>
												<span style="COLOR: #000000">:<br /><img id="_139_140_Open_Image" onclick="this.style.display='none'; document.getElementById('_139_140_Open_Text').style.display='none'; document.getElementById('_139_140_Closed_Image').style.display='inline'; document.getElementById('_139_140_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_139_140_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_139_140_Closed_Text').style.display='none'; document.getElementById('_139_140_Open_Image').style.display='inline'; document.getElementById('_139_140_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span style="COLOR: #000000">~</span>
												<span style="COLOR: #000000">OpNewCreator()</span>
												<span id="_139_140_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_139_140_Open_Text">
														<span style="COLOR: #000000">{}</span>
												</span>
												<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
										</span>
										<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    template </span>
										<span style="COLOR: #000000">&lt;</span>
										<span style="COLOR: #0000ff">class</span>
										<span style="COLOR: #000000"> T</span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000">
												<br />
												<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
										<span style="COLOR: #0000ff">struct</span>
										<span style="COLOR: #000000"> MallocCreator<br /><img id="_191_351_Open_Image" onclick="this.style.display='none'; document.getElementById('_191_351_Open_Text').style.display='none'; document.getElementById('_191_351_Closed_Image').style.display='inline'; document.getElementById('_191_351_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_191_351_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_191_351_Closed_Text').style.display='none'; document.getElementById('_191_351_Open_Image').style.display='inline'; document.getElementById('_191_351_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
										<span id="_191_351_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
										<span id="_191_351_Open_Text">
												<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />        </span>
												<span style="COLOR: #0000ff">static</span>
												<span style="COLOR: #000000"> T</span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000"> Create()<br /><img id="_216_314_Open_Image" onclick="this.style.display='none'; document.getElementById('_216_314_Open_Text').style.display='none'; document.getElementById('_216_314_Closed_Image').style.display='inline'; document.getElementById('_216_314_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_216_314_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_216_314_Closed_Text').style.display='none'; document.getElementById('_216_314_Open_Image').style.display='inline'; document.getElementById('_216_314_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span id="_216_314_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_216_314_Open_Text">
														<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />            T</span>
														<span style="COLOR: #000000">*</span>
														<span style="COLOR: #000000"> buf </span>
														<span style="COLOR: #000000">=</span>
														<span style="COLOR: #000000"> (T</span>
														<span style="COLOR: #000000">*</span>
														<span style="COLOR: #000000">)std::malloc(</span>
														<span style="COLOR: #0000ff">sizeof</span>
														<span style="COLOR: #000000">(T));<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />            </span>
														<span style="COLOR: #0000ff">if</span>
														<span style="COLOR: #000000"> ( </span>
														<span style="COLOR: #000000">!</span>
														<span style="COLOR: #000000">buf )<br /><img id="_276_295_Open_Image" onclick="this.style.display='none'; document.getElementById('_276_295_Open_Text').style.display='none'; document.getElementById('_276_295_Closed_Image').style.display='inline'; document.getElementById('_276_295_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_276_295_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_276_295_Closed_Text').style.display='none'; document.getElementById('_276_295_Open_Image').style.display='inline'; document.getElementById('_276_295_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
														<span id="_276_295_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
														<span id="_276_295_Open_Text">
																<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />                </span>
																<span style="COLOR: #0000ff">return</span>
																<span style="COLOR: #000000"> </span>
																<span style="COLOR: #000000">0</span>
																<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
														</span>
														<span style="COLOR: #000000">
																<br />
																<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />            </span>
														<span style="COLOR: #0000ff">return</span>
														<span style="COLOR: #000000"> buf;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
														<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
												<span style="COLOR: #0000ff">protected</span>
												<span style="COLOR: #000000">:<br /><img id="_346_347_Open_Image" onclick="this.style.display='none'; document.getElementById('_346_347_Open_Text').style.display='none'; document.getElementById('_346_347_Closed_Image').style.display='inline'; document.getElementById('_346_347_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_346_347_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_346_347_Closed_Text').style.display='none'; document.getElementById('_346_347_Open_Image').style.display='inline'; document.getElementById('_346_347_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span style="COLOR: #000000">~</span>
												<span style="COLOR: #000000">MallocCreator()</span>
												<span id="_346_347_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_346_347_Open_Text">
														<span style="COLOR: #000000">{}</span>
												</span>
												<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
										</span>
										<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    template </span>
										<span style="COLOR: #000000">&lt;</span>
										<span style="COLOR: #0000ff">class</span>
										<span style="COLOR: #000000"> T</span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000">
												<br />
												<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
										<span style="COLOR: #0000ff">struct</span>
										<span style="COLOR: #000000"> ProtypeCreator <br /><img id="_400_650_Open_Image" onclick="this.style.display='none'; document.getElementById('_400_650_Open_Text').style.display='none'; document.getElementById('_400_650_Closed_Image').style.display='inline'; document.getElementById('_400_650_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_400_650_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_400_650_Closed_Text').style.display='none'; document.getElementById('_400_650_Open_Image').style.display='inline'; document.getElementById('_400_650_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
										<span id="_400_650_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
										<span id="_400_650_Open_Text">
												<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
												<span style="COLOR: #0000ff">public</span>
												<span style="COLOR: #000000">:<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />        T</span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000"> Create()<br /><img id="_427_485_Open_Image" onclick="this.style.display='none'; document.getElementById('_427_485_Open_Text').style.display='none'; document.getElementById('_427_485_Closed_Image').style.display='inline'; document.getElementById('_427_485_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_427_485_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_427_485_Closed_Text').style.display='none'; document.getElementById('_427_485_Open_Image').style.display='inline'; document.getElementById('_427_485_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span id="_427_485_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_427_485_Open_Text">
														<span style="COLOR: #000000">{<br /><img id="_439_478_Open_Image" onclick="this.style.display='none'; document.getElementById('_439_478_Open_Text').style.display='none'; document.getElementById('_439_478_Closed_Image').style.display='inline'; document.getElementById('_439_478_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_439_478_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_439_478_Closed_Text').style.display='none'; document.getElementById('_439_478_Open_Image').style.display='inline'; document.getElementById('_439_478_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
														<span style="COLOR: #0000ff">return</span>
														<span style="COLOR: #000000"> </span>
														<span id="_439_478_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
														<span id="_439_478_Open_Text">
																<span style="COLOR: #008000">/*</span>
																<span style="COLOR: #008000">pPrototype_ ? pPrototype_-&gt;Clone() :</span>
																<span style="COLOR: #008000">*/</span>
														</span>
														<span style="COLOR: #000000"> </span>
														<span style="COLOR: #000000">0</span>
														<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
														<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />
														<br />
														<img id="_508_530_Open_Image" onclick="this.style.display='none'; document.getElementById('_508_530_Open_Text').style.display='none'; document.getElementById('_508_530_Closed_Image').style.display='inline'; document.getElementById('_508_530_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
														<img id="_508_530_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_508_530_Closed_Text').style.display='none'; document.getElementById('_508_530_Open_Image').style.display='inline'; document.getElementById('_508_530_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        T</span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000"> GetPrototype() </span>
												<span id="_508_530_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_508_530_Open_Text">
														<span style="COLOR: #000000">{ </span>
														<span style="COLOR: #0000ff">return</span>
														<span style="COLOR: #000000"> pPrototype_; }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
														<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />
														<br />
														<img id="_562_584_Open_Image" onclick="this.style.display='none'; document.getElementById('_562_584_Open_Text').style.display='none'; document.getElementById('_562_584_Closed_Image').style.display='inline'; document.getElementById('_562_584_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
														<img id="_562_584_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_562_584_Closed_Text').style.display='none'; document.getElementById('_562_584_Open_Image').style.display='inline'; document.getElementById('_562_584_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span style="COLOR: #0000ff">void</span>
												<span style="COLOR: #000000"> SetPrototype(T</span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000"> pObj) </span>
												<span id="_562_584_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_562_584_Open_Text">
														<span style="COLOR: #000000">{ pPrototype_ </span>
														<span style="COLOR: #000000">=</span>
														<span style="COLOR: #000000"> pObj; }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
														<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
												<span style="COLOR: #0000ff">protected</span>
												<span style="COLOR: #000000">:<br /><img id="_617_618_Open_Image" onclick="this.style.display='none'; document.getElementById('_617_618_Open_Text').style.display='none'; document.getElementById('_617_618_Closed_Image').style.display='inline'; document.getElementById('_617_618_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_617_618_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_617_618_Closed_Text').style.display='none'; document.getElementById('_617_618_Open_Image').style.display='inline'; document.getElementById('_617_618_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span style="COLOR: #000000">~</span>
												<span style="COLOR: #000000">ProtypeCreator()</span>
												<span id="_617_618_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_617_618_Open_Text">
														<span style="COLOR: #000000">{}</span>
												</span>
												<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
												<span style="COLOR: #0000ff">private</span>
												<span style="COLOR: #000000">:<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />        T</span>
												<span style="COLOR: #000000">*</span>
												<span style="COLOR: #000000"> pPrototype_;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
										</span>
										<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    template</span>
										<span style="COLOR: #000000">&lt;</span>
										<span style="COLOR: #000000">
												<br />
												<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">class</span>
										<span style="COLOR: #000000"> T,<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />            template </span>
										<span style="COLOR: #000000">&lt;</span>
										<span style="COLOR: #0000ff">class</span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">class</span>
										<span style="COLOR: #000000"> CreatePolicy </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> OpNewCreator<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000">
												<br />
												<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
										<span style="COLOR: #0000ff">class</span>
										<span style="COLOR: #000000"> CommonObj:</span>
										<span style="COLOR: #0000ff">public</span>
										<span style="COLOR: #000000"> CreatePolicy</span>
										<span style="COLOR: #000000">&lt;</span>
										<span style="COLOR: #000000">T</span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000">
												<br />
												<img id="_777_923_Open_Image" onclick="this.style.display='none'; document.getElementById('_777_923_Open_Text').style.display='none'; document.getElementById('_777_923_Closed_Image').style.display='inline'; document.getElementById('_777_923_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="_777_923_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_777_923_Closed_Text').style.display='none'; document.getElementById('_777_923_Open_Image').style.display='inline'; document.getElementById('_777_923_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
										<span id="_777_923_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
										<span id="_777_923_Open_Text">
												<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
												<span style="COLOR: #0000ff">public</span>
												<span style="COLOR: #000000">:<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />        CommonObj()<br /><img id="_804_838_Open_Image" onclick="this.style.display='none'; document.getElementById('_804_838_Open_Text').style.display='none'; document.getElementById('_804_838_Closed_Image').style.display='inline'; document.getElementById('_804_838_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_804_838_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_804_838_Closed_Text').style.display='none'; document.getElementById('_804_838_Open_Image').style.display='inline'; document.getElementById('_804_838_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span id="_804_838_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_804_838_Open_Text">
														<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />            CreatePolicy</span>
														<span style="COLOR: #000000">&lt;</span>
														<span style="COLOR: #000000">T</span>
														<span style="COLOR: #000000">&gt;</span>
														<span style="COLOR: #000000">::Create();<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
														<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />
														<br />
														<img id="_855_856_Open_Image" onclick="this.style.display='none'; document.getElementById('_855_856_Open_Text').style.display='none'; document.getElementById('_855_856_Closed_Image').style.display='inline'; document.getElementById('_855_856_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
														<img id="_855_856_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_855_856_Closed_Text').style.display='none'; document.getElementById('_855_856_Open_Image').style.display='inline'; document.getElementById('_855_856_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span style="COLOR: #000000">~</span>
												<span style="COLOR: #000000">CommonObj()</span>
												<span id="_855_856_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_855_856_Open_Text">
														<span style="COLOR: #000000">{}</span>
												</span>
												<span style="COLOR: #000000">
														<br />
														<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />
														<br />
														<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />        </span>
												<span style="COLOR: #0000ff">void</span>
												<span style="COLOR: #000000"> Test()<br /><img id="_875_908_Open_Image" onclick="this.style.display='none'; document.getElementById('_875_908_Open_Text').style.display='none'; document.getElementById('_875_908_Closed_Image').style.display='inline'; document.getElementById('_875_908_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_875_908_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_875_908_Closed_Text').style.display='none'; document.getElementById('_875_908_Open_Image').style.display='inline'; document.getElementById('_875_908_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
												<span id="_875_908_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
												<span id="_875_908_Open_Text">
														<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />            std::cout</span>
														<span style="COLOR: #000000">&lt;&lt;</span>
														<span style="COLOR: #000000">"</span>
														<span style="COLOR: #000000">Hello World</span>
														<span style="COLOR: #000000">"</span>
														<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
														<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
												<span style="COLOR: #0000ff">protected</span>
												<span style="COLOR: #000000">:<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
										</span>
										<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />
										<br />
										<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />
										<br />
										<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />
										<br />
										<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />
										<br />
										<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />
										<br />
										<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />
								</span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> _tmain(</span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> argc, _TCHAR</span>
								<span style="COLOR: #000000">*</span>
								<span style="COLOR: #000000"> argv[])<br /><img id="_970_1173_Open_Image" onclick="this.style.display='none'; document.getElementById('_970_1173_Open_Text').style.display='none'; document.getElementById('_970_1173_Closed_Image').style.display='inline'; document.getElementById('_970_1173_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="_970_1173_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; document.getElementById('_970_1173_Closed_Text').style.display='none'; document.getElementById('_970_1173_Open_Image').style.display='inline'; document.getElementById('_970_1173_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
								<span id="_970_1173_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span>
								<span id="_970_1173_Open_Text">
										<span style="COLOR: #000000">{<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    typedef SHFTest::CommonObj</span>
										<span style="COLOR: #000000">&lt;</span>
										<span style="COLOR: #0000ff">int</span>
										<span style="COLOR: #000000">,SHFTest::ProtypeCreator</span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000"> myProtypeObj;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    myProtypeObj Testobj1;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    Testobj1.Test();<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    typedef SHFTest::CommonObj</span>
										<span style="COLOR: #000000">&lt;</span>
										<span style="COLOR: #0000ff">int</span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000"> myObj;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    myObj Testobj2;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    Testobj2.Test();<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />    </span>
										<span style="COLOR: #0000ff">return</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">0</span>
										<span style="COLOR: #000000">;<br /><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
								</span>
						</div>
				</div>以上是个人读后感的，有什么不对的地方希望大家指正。 </div>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/16880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-12-26 19:14 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/12/26/16880.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Boost库编译</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/11/27/15703.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Mon, 27 Nov 2006 10:19:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/11/27/15703.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/15703.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/11/27/15703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/15703.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/15703.html</trackback:ping><description><![CDATA[在Visual Studio .NET 2003 命令提示下进入boost目录，如何进入tools\build\jam_src\，执行build.bat，编译成功得到bjam.exe<br /><br />接着copy bjam.exe到 boost目录，执行bjam -sBOOST_ROOT=. -sTOOLS=vc7 "-sBUILD=debug release &lt;runtime-link&gt;static/dynamic"<br /><br />漫长的等待后会在boost目录下的bin文件夹中生产一堆lib,复制到sdk的lib路径下，将boost目录添加的工程中。ok<img src ="http://www.cppblog.com/shenhuafeng/aggbug/15703.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-11-27 18:19 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/11/27/15703.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Modern C++ Design 学习笔记之Policy Based Class Design</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/09/13/12426.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Wed, 13 Sep 2006 15:22:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/09/13/12426.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/12426.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/09/13/12426.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/12426.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/12426.html</trackback:ping><description><![CDATA[
		<p>版权所有 未经作者允许 不得用于商业用途 转载请附带这第一,二行<br /><a href="/shenhuafeng/">http://www.cppblog.com/shenhuafeng/</a></p>
		<p>Modern C++ Design的第一章就是Policy Based Class Design,可见该技术是整个Loki库的设计基础.这种方式的优点是能够增加程序库的弹性和提高复用性.<br />简单来说就是,一个Policy Based Class由很多基本的Policy来组成的,每个Policy Class代表了该复杂类(相对复杂)类的某些行为或者特性.有点类似于类的继承，当然和类的继承是不同的。<br />那么Policy Based Class有什么用呢？我们先看下面这个问题。<br />假如需要设计一个基础库，可能是基于某个特定领域的，那么库的设计者就需要考虑这样的问题，他需要将未来的可能的需求加以分类，抽象出层次，然后运用OO思想，希望能够构造出一个开发的结构，当然其中的component的设计当然是越是灵活越好。<br />用传统的OO设计思想，可能可以设计出一套非常完善的类库 ，可能包罗万象。当然的对于应用开发人员需要花很多时间去学习这个“包罗万象”的基础类库。而且往往这样的基础库不是通用性不强就是限制条件太多（例如MFC）可以说就是这样一种类型的库。</p>
		<p>下面要展示一下运用多重继承以及Templetes来实现的policy class,举一个简单的例子：<br />假如我们需要发明一个灯，它有不同的种类，有使用不同能源的工作方式以及有不同的操作方式，如果运用</p>
		<p>policy based class来设计的话，可能是这样的结构：<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: #008080"> 1</span>
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">templete</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 2</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> T,<br /></span>
				<span style="COLOR: #008080"> 3</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    templete </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> Work,<br /></span>
				<span style="COLOR: #008080"> 4</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    templete </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> OpMethod<br /></span>
				<span style="COLOR: #008080"> 5</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 6</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> Light<br /></span>
				<span style="COLOR: #008080"> 7</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    :</span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> Work</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">T</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">,<br /></span>
				<span style="COLOR: #008080"> 8</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />        OpMethod</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">Light</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 9</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080">10</span>
				<span style="COLOR: #000000">
						<img id="Codehighlighter1_134_204_Open_Image" onclick="this.style.display='none'; Codehighlighter1_134_204_Open_Text.style.display='none'; Codehighlighter1_134_204_Closed_Image.style.display='inline'; Codehighlighter1_134_204_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_134_204_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_134_204_Closed_Text.style.display='none'; Codehighlighter1_134_204_Open_Image.style.display='inline'; Codehighlighter1_134_204_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span id="Codehighlighter1_134_204_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.cppblog.com/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_134_204_Open_Text">
						<span style="COLOR: #000000">{<br /></span>
						<span style="COLOR: #008080">11</span>
						<span style="COLOR: #000000">
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    T</span>
						<span style="COLOR: #000000">*</span>
						<span style="COLOR: #000000"> xxOp()<br /></span>
						<span style="COLOR: #008080">12</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_148_202_Open_Image" onclick="this.style.display='none'; Codehighlighter1_148_202_Open_Text.style.display='none'; Codehighlighter1_148_202_Closed_Image.style.display='inline'; Codehighlighter1_148_202_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_148_202_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_148_202_Closed_Text.style.display='none'; Codehighlighter1_148_202_Open_Image.style.display='inline'; Codehighlighter1_148_202_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_148_202_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cppblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_148_202_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080">13</span>
								<span style="COLOR: #000000">
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(Work(T).Status </span>
								<span style="COLOR: #000000">==</span>
								<span style="COLOR: #000000"> ACMODE)<br /></span>
								<span style="COLOR: #008080">14</span>
								<span style="COLOR: #000000">
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            OpMethod(</span>
								<span style="COLOR: #000000">*</span>
								<span style="COLOR: #0000ff">this</span>
								<span style="COLOR: #000000">);<br /></span>
								<span style="COLOR: #008080">15</span>
								<span style="COLOR: #000000">
										<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">16</span>
						<span style="COLOR: #000000">
								<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
		<p>
				<br />当你实例化一个Policy Based Class的时候，你还可以给出默认的实现，就像成员函数声明和定义时候给出的默认参数一样。</p>
		<p>回头来看一下多重继承和Templetes的特性：<br />多重继承：欠缺一种一成不变的可以套用的代码，在某种受控的情况下将继承的Class组合起来（多重继承只是将他们放在一起，然后提供一种访问方式）。Templetes：有这样的特性。<br />多重继承由于继承自多个Base Class，所以型别信息缺乏，而Templetes正式基于型别的。<br />多重继承容易扩张，而Templetes的特化不容易扩张。</p>
		<p>正是两项技术的互补，才使这样的技术实现成为可能。<br />Light对象继承多个policy class,使得特性得以在编译期间定值，从而实现Light Class功能的扩张。<br />而Templetes技术使得大部分Work以及OpMethod能够共享大部分基础代码，而对特定的版本实现定值。</p>
		<p>这样的好处就是，应用程序开发人员得以在应用设计时期，使用这些Class，选择适合自己的Policy组装自己的代码，从而使得程序大小得以精减，运行速率得以提高，而不必去包含整个又大又全的基础类库。</p>
		<p>以上只是一些学习的心得和体会，如果有不对的地方，希望大家多多指教。</p>
<img src ="http://www.cppblog.com/shenhuafeng/aggbug/12426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-09-13 23:22 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/09/13/12426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Loki库的学习心得</title><link>http://www.cppblog.com/shenhuafeng/archive/2006/09/13/12402.html</link><dc:creator>CPP&amp;&amp;设计模式小屋</dc:creator><author>CPP&amp;&amp;设计模式小屋</author><pubDate>Wed, 13 Sep 2006 03:32:00 GMT</pubDate><guid>http://www.cppblog.com/shenhuafeng/archive/2006/09/13/12402.html</guid><wfw:comment>http://www.cppblog.com/shenhuafeng/comments/12402.html</wfw:comment><comments>http://www.cppblog.com/shenhuafeng/archive/2006/09/13/12402.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shenhuafeng/comments/commentRss/12402.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shenhuafeng/services/trackbacks/12402.html</trackback:ping><description><![CDATA[前段时间刚刚看完STL源代码解析,觉得受益非浅,不过总体来说STL的源代码还是比较浅显易懂的.最近学习Andrei Alexandrescu的Modern C++ Design,随后从网站上下载了Loki库的源代码,发觉还是有些难度的,准备将学习的点滴记录于此,每天写篇学习心得,也算是给自己一个学习的动力吧.<img src ="http://www.cppblog.com/shenhuafeng/aggbug/12402.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shenhuafeng/" target="_blank">CPP&&设计模式小屋</a> 2006-09-13 11:32 <a href="http://www.cppblog.com/shenhuafeng/archive/2006/09/13/12402.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>