diff options
Diffstat (limited to 'doc/html/self_8h_source.html')
-rw-r--r-- | doc/html/self_8h_source.html | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/doc/html/self_8h_source.html b/doc/html/self_8h_source.html deleted file mode 100644 index 77c6066..0000000 --- a/doc/html/self_8h_source.html +++ /dev/null @@ -1,169 +0,0 @@ -<!-- HTML header for doxygen 1.8.3.1--> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> -<meta http-equiv="X-UA-Compatible" content="IE=9"/> -<meta name="generator" content="Doxygen 1.8.6"/> -<title>Templates -- Meow: /home/cathook/Projects/template_meow/meowpp/utility/self.h Source File</title> -<link href="tabs.css" rel="stylesheet" type="text/css"/> -<script type="text/javascript" src="jquery.js"></script> -<script type="text/javascript" src="dynsections.js"></script> -<link href="navtree.css" rel="stylesheet" type="text/css"/> -<script type="text/javascript" src="resize.js"></script> -<script type="text/javascript" src="navtree.js"></script> -<script type="text/javascript"> - $(document).ready(initResizable); - $(window).load(resizeHeight); -</script> -<link href="stylesheet.css" rel="stylesheet" type="text/css" /> -<link href="custom.css" rel="stylesheet" type="text/css"/> -</head> -<body> -<div id="top"><!-- do not remove this div, it is closed by doxygen! --> -<div id="titlearea"> -<table cellspacing="0" cellpadding="0"> - <tbody> - <tr style="height: 56px;"> - <td id="projectlogo"><img alt="Logo" src="logo.png"/></td> - <td style="padding-left: 0.5em;"> - <div id="projectname">Templates -- Meow -  <span id="projectnumber">2.0.-1</span> - </div> - <div id="projectbrief">A C++ template contains kinds of interesting classes and functions</div> - </td> - </tr> - </tbody> -</table> -</div> -<!-- end header part --> -<!-- Generated by Doxygen 1.8.6 --> -</div><!-- top --> -<div id="side-nav" class="ui-resizable side-nav-resizable"> - <div id="nav-tree"> - <div id="nav-tree-contents"> - <div id="nav-sync" class="sync"></div> - </div> - </div> - <div id="splitbar" style="-moz-user-select:none;" - class="ui-resizable-handle"> - </div> -</div> -<script type="text/javascript"> -$(document).ready(function(){initNavTree('self_8h_source.html','');}); -</script> -<div id="doc-content"> -<div class="header"> - <div class="headertitle"> -<div class="title">self.h</div> </div> -</div><!--header--> -<div class="contents"> -<a href="self_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> -<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef __MEOWPP_UTILITY_SELF_H__</span></div> -<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"></span><span class="preprocessor">#define __MEOWPP_UTILITY_SELF_H__</span></div> -<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"></span></div> -<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <cstdlib></span></div> -<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div> -<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">namespace </span>meow {</div> -<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div> -<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div> -<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">template</span><<span class="keyword">typename</span> SelfType></div> -<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html"> 117</a></span> <span class="keyword">class </span><a class="code" href="classmeow_1_1Self.html">Self</a> {</div> -<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">private</span>:</div> -<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">struct </span>Body {</div> -<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">int</span> counter;</div> -<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  SelfType body;</div> -<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div> -<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  Body() : counter(1) {}</div> -<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  Body(SelfType <span class="keyword">const</span>& arg_another_body) :</div> -<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  counter(1), body(arg_another_body) {}</div> -<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  };</div> -<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div> -<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  Body* body_;</div> -<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div> -<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordtype">void</span> Attach(Body* arg_another_body) {</div> -<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  body_ = arg_another_body;</div> -<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  body_->counter += 1;</div> -<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div> -<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div> -<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordtype">void</span> Detach() {</div> -<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  body_->counter -= 1;</div> -<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span> (body_->counter == 0) {</div> -<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">delete</span> body_;</div> -<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div> -<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div> -<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">public</span>:</div> -<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#a48c3ce6897b3eebfad96a871f9fc2054"> 152</a></span>  <a class="code" href="classmeow_1_1Self.html#a48c3ce6897b3eebfad96a871f9fc2054">Self</a>() : body_(new Body()) {}</div> -<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div> -<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#a698997f92ac64eb031b7f88f4c40a5cb"> 159</a></span>  <a class="code" href="classmeow_1_1Self.html#a698997f92ac64eb031b7f88f4c40a5cb">Self</a>(SelfType <span class="keyword">const</span>& arg_body) : body_(new Body(arg_body)) {}</div> -<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div> -<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#aafab402f6b101bb60764bb8bc1997c47"> 166</a></span>  <a class="code" href="classmeow_1_1Self.html#aafab402f6b101bb60764bb8bc1997c47">Self</a>(<a class="code" href="classmeow_1_1Self.html">Self</a> <span class="keyword">const</span>& arg_another_self) { Attach(arg_another_self.body_); }</div> -<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div> -<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#a0ef07d3b04626fc926a0a947b20bb8dd"> 174</a></span>  <a class="code" href="classmeow_1_1Self.html#a0ef07d3b04626fc926a0a947b20bb8dd">~Self</a>() { Detach(); }</div> -<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div> -<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#a11a512ee42009b48644dbb9dd44a5864"> 180</a></span>  <a class="code" href="classmeow_1_1Self.html">Self</a> <span class="keyword">const</span>& <a class="code" href="classmeow_1_1Self.html#a11a512ee42009b48644dbb9dd44a5864">ReferenceFrom</a>(<a class="code" href="classmeow_1_1Self.html">Self</a> <span class="keyword">const</span>& arg_another_self) {</div> -<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  Detach();</div> -<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  Attach(arg_another_self.body_);</div> -<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div> -<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div> -<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div> -<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#ac69d081fd7d4227ffdda07d62a325b1d"> 190</a></span>  <a class="code" href="classmeow_1_1Self.html">Self</a> <span class="keyword">const</span>& <a class="code" href="classmeow_1_1Self.html#ac69d081fd7d4227ffdda07d62a325b1d">CopyFrom</a>(<a class="code" href="classmeow_1_1Self.html">Self</a> <span class="keyword">const</span>& arg_another_self) {</div> -<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  body_->body.CopyFrom(arg_another_self.body_->body);</div> -<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div> -<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div> -<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div> -<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#a4e38ec4ad25ad6e9cdcaf1003d60d1a1"> 198</a></span>  <a class="code" href="classmeow_1_1Self.html">Self</a> <a class="code" href="classmeow_1_1Self.html#a4e38ec4ad25ad6e9cdcaf1003d60d1a1">Copy</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Self.html#a48c3ce6897b3eebfad96a871f9fc2054">Self</a>(body_->body); }</div> -<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div> -<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#ae7d3dbc4337452bf93fb61898b5d3c2c"> 206</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classmeow_1_1Self.html#ae7d3dbc4337452bf93fb61898b5d3c2c">Is</a>(<a class="code" href="classmeow_1_1Self.html">Self</a> <span class="keyword">const</span>& arg_another_self)<span class="keyword"> const </span>{</div> -<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">return</span> (body_ == arg_another_self.body_);</div> -<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div> -<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div> -<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#a17f88ab6c6e515b9c3c183145b0bf7a3"> 213</a></span>  SelfType* <a class="code" href="classmeow_1_1Self.html#a17f88ab6c6e515b9c3c183145b0bf7a3">operator-></a>() {</div> -<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">return</span> &(body_->body);</div> -<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div> -<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div> -<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#af414ac2a283abe9fa772760b65876b85"> 220</a></span>  SelfType <span class="keyword">const</span>* <a class="code" href="classmeow_1_1Self.html#af414ac2a283abe9fa772760b65876b85">operator-></a>()<span class="keyword"> const </span>{</div> -<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">return</span> &(body_->body);</div> -<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div> -<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div> -<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classmeow_1_1Self.html#abd43b3f1437425ccd1c2d7acc80a9cef"> 227</a></span>  <a class="code" href="classmeow_1_1Self.html">Self</a>& <a class="code" href="classmeow_1_1Self.html#abd43b3f1437425ccd1c2d7acc80a9cef">operator()</a>()<span class="keyword"> const </span>{</div> -<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">return</span> *<span class="keyword">const_cast<</span><a class="code" href="classmeow_1_1Self.html">Self</a>*<span class="keyword">></span>(<span class="keyword">this</span>);</div> -<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  }</div> -<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div> -<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classmeow_1_1Self.html">Self</a>& <a class="code" href="classmeow_1_1Self.html#a5b46b491e81d8c4120b1e7d9bf180855">operator=</a>(<a class="code" href="classmeow_1_1Self.html">Self</a> <span class="keyword">const</span>& b);</div> -<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div> -<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor">#ifdef MEOWPP_UTILITY_SELF_TESTING</span></div> -<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor"></span> <span class="keyword">friend</span> <span class="keyword">class </span>SelfTest;</div> -<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor">#endif // MEOWPP_UTILITY_SELF_TESTING</span></div> -<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor"></span>};</div> -<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div> -<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> } <span class="comment">// meow</span></div> -<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div> -<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor">#endif // __MEOWPP_UTILITY_SELF_H__</span></div> -<div class="ttc" id="classmeow_1_1Self_html_a4e38ec4ad25ad6e9cdcaf1003d60d1a1"><div class="ttname"><a href="classmeow_1_1Self.html#a4e38ec4ad25ad6e9cdcaf1003d60d1a1">meow::Self::Copy</a></div><div class="ttdeci">Self Copy() const </div><div class="ttdoc">Creates a copy one of itself. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00198">self.h:198</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_a698997f92ac64eb031b7f88f4c40a5cb"><div class="ttname"><a href="classmeow_1_1Self.html#a698997f92ac64eb031b7f88f4c40a5cb">meow::Self::Self</a></div><div class="ttdeci">Self(SelfType const &arg_body)</div><div class="ttdoc">Creates a new one with specifying a initial value for SelfType object. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00159">self.h:159</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_ae7d3dbc4337452bf93fb61898b5d3c2c"><div class="ttname"><a href="classmeow_1_1Self.html#ae7d3dbc4337452bf93fb61898b5d3c2c">meow::Self::Is</a></div><div class="ttdeci">bool Is(Self const &arg_another_self) const </div><div class="ttdoc">Checks whether the gived instance of Self references from the same SelfType with me or not...</div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00206">self.h:206</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_abd43b3f1437425ccd1c2d7acc80a9cef"><div class="ttname"><a href="classmeow_1_1Self.html#abd43b3f1437425ccd1c2d7acc80a9cef">meow::Self::operator()</a></div><div class="ttdeci">Self & operator()() const </div><div class="ttdoc">Access itself in non-constant mode. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00227">self.h:227</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_a17f88ab6c6e515b9c3c183145b0bf7a3"><div class="ttname"><a href="classmeow_1_1Self.html#a17f88ab6c6e515b9c3c183145b0bf7a3">meow::Self::operator-></a></div><div class="ttdeci">SelfType * operator->()</div><div class="ttdoc">Access the instance of SelfType by address. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00213">self.h:213</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_af414ac2a283abe9fa772760b65876b85"><div class="ttname"><a href="classmeow_1_1Self.html#af414ac2a283abe9fa772760b65876b85">meow::Self::operator-></a></div><div class="ttdeci">SelfType const * operator->() const </div><div class="ttdoc">Access the instance of SelfType by constant address. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00220">self.h:220</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_ac69d081fd7d4227ffdda07d62a325b1d"><div class="ttname"><a href="classmeow_1_1Self.html#ac69d081fd7d4227ffdda07d62a325b1d">meow::Self::CopyFrom</a></div><div class="ttdeci">Self const & CopyFrom(Self const &arg_another_self)</div><div class="ttdoc">Copies the data in SelfType object from another Self object. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00190">self.h:190</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_aafab402f6b101bb60764bb8bc1997c47"><div class="ttname"><a href="classmeow_1_1Self.html#aafab402f6b101bb60764bb8bc1997c47">meow::Self::Self</a></div><div class="ttdeci">Self(Self const &arg_another_self)</div><div class="ttdoc">References from another one. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00166">self.h:166</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_a5b46b491e81d8c4120b1e7d9bf180855"><div class="ttname"><a href="classmeow_1_1Self.html#a5b46b491e81d8c4120b1e7d9bf180855">meow::Self::operator=</a></div><div class="ttdeci">Self & operator=(Self const &b)</div><div class="ttdoc">Disallows the "operator=" so develops need to explicitly use CopyFrom/RefernceFrom. </div></div> -<div class="ttc" id="classmeow_1_1Self_html_a11a512ee42009b48644dbb9dd44a5864"><div class="ttname"><a href="classmeow_1_1Self.html#a11a512ee42009b48644dbb9dd44a5864">meow::Self::ReferenceFrom</a></div><div class="ttdeci">Self const & ReferenceFrom(Self const &arg_another_self)</div><div class="ttdoc">References from another Self object. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00180">self.h:180</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_a48c3ce6897b3eebfad96a871f9fc2054"><div class="ttname"><a href="classmeow_1_1Self.html#a48c3ce6897b3eebfad96a871f9fc2054">meow::Self::Self</a></div><div class="ttdeci">Self()</div><div class="ttdoc">Creates a new one. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00152">self.h:152</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html"><div class="ttname"><a href="classmeow_1_1Self.html">meow::Self</a></div><div class="ttdoc">An implementation for the reference mechanism. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00117">self.h:117</a></div></div> -<div class="ttc" id="classmeow_1_1Self_html_a0ef07d3b04626fc926a0a947b20bb8dd"><div class="ttname"><a href="classmeow_1_1Self.html#a0ef07d3b04626fc926a0a947b20bb8dd">meow::Self::~Self</a></div><div class="ttdeci">~Self()</div><div class="ttdoc">Detatches. </div><div class="ttdef"><b>Definition:</b> <a href="self_8h_source.html#l00174">self.h:174</a></div></div> -</div><!-- fragment --></div><!-- contents --> -</div><!-- doc-content --> -<!-- HTML footer for doxygen 1.8.3.1--> -<!-- start footer part --> -<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> - <ul> - <li class="navelem"><a class="el" href="dir_92fecd8d02dd5e7a67429447fdf0f60f.html">meowpp</a></li><li class="navelem"><a class="el" href="dir_310883ca86d42971a9d74da2c3f04777.html">utility</a></li><li class="navelem"><a class="el" href="self_8h.html">self.h</a></li> - <li class="footer">Generated on Mon Sep 29 2014 16:55:35 for Templates -- Meow by - <a href="http://www.doxygen.org/index.html"> - <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li> - </ul> -</div> -</body> -</html> |