diff options
Diffstat (limited to 'doc/html/classmeow_1_1Self.html')
-rw-r--r-- | doc/html/classmeow_1_1Self.html | 576 |
1 files changed, 208 insertions, 368 deletions
diff --git a/doc/html/classmeow_1_1Self.html b/doc/html/classmeow_1_1Self.html index 13def91..dc241d5 100644 --- a/doc/html/classmeow_1_1Self.html +++ b/doc/html/classmeow_1_1Self.html @@ -5,7 +5,7 @@ <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: meow::Self< Data > Class Template Reference</title> +<title>Templates -- Meow: meow::Self< SelfType > Class Template Reference</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> @@ -28,7 +28,7 @@ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td> <td style="padding-left: 0.5em;"> <div id="projectname">Templates -- Meow -  <span id="projectnumber">1.2.11</span> +  <span id="projectnumber">2.0.-1</span> </div> <div id="projectbrief">A C++ template contains kinds of interesting classes and functions</div> </td> @@ -56,204 +56,169 @@ $(document).ready(function(){initNavTree('classmeow_1_1Self.html','');}); <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | -<a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="classmeow_1_1Self-members.html">List of all members</a> </div> <div class="headertitle"> -<div class="title">meow::Self< Data > Class Template Reference</div> </div> +<div class="title">meow::Self< SelfType > Class Template Reference</div> </div> </div><!--header--> <div class="contents"> -<p>For developer to pack the attributes of a class. +<p>An implementation for the reference mechanism. <a href="classmeow_1_1Self.html#details">More...</a></p> <p><code>#include "<a class="el" href="self_8h_source.html">self.h</a>"</code></p> <table class="memberdecls"> -<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> -Public Types</h2></td></tr> -<tr class="memitem:aa7d169e9d20d590f3e571206084797f8"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8">DuplicateType</a> { <a class="el" href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730">COPY_FROM</a>, -<a class="el" href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8a40c8a3eba568e04a5ce09ee0fa881822">REFERENCE_FROM</a> - }</td></tr> -<tr class="memdesc:aa7d169e9d20d590f3e571206084797f8"><td class="mdescLeft"> </td><td class="mdescRight">Kind of ways of duplicating. <a href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8">More...</a><br/></td></tr> -<tr class="separator:aa7d169e9d20d590f3e571206084797f8"><td class="memSeparator" colspan="2"> </td></tr> -</table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> -<tr class="memitem:a6b39fcc4b184809f9aeaeb1c9a0bac2d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a6b39fcc4b184809f9aeaeb1c9a0bac2d">Self</a> ()</td></tr> -<tr class="memdesc:a6b39fcc4b184809f9aeaeb1c9a0bac2d"><td class="mdescLeft"> </td><td class="mdescRight">constructor with a real entity <a href="#a6b39fcc4b184809f9aeaeb1c9a0bac2d">More...</a><br/></td></tr> -<tr class="separator:a6b39fcc4b184809f9aeaeb1c9a0bac2d"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:af3220c1e1d7966c6dbaf4ec62f8cbc2f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#af3220c1e1d7966c6dbaf4ec62f8cbc2f">Self</a> (Data const &d)</td></tr> -<tr class="memdesc:af3220c1e1d7966c6dbaf4ec62f8cbc2f"><td class="mdescLeft"> </td><td class="mdescRight">connstructor with a real entity with it using its copy constructor <a href="#af3220c1e1d7966c6dbaf4ec62f8cbc2f">More...</a><br/></td></tr> -<tr class="separator:af3220c1e1d7966c6dbaf4ec62f8cbc2f"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:afee797a10c73a1c8e02c8e6315a2930b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#afee797a10c73a1c8e02c8e6315a2930b">Self</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &b, <a class="el" href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8">DuplicateType</a> d)</td></tr> -<tr class="memdesc:afee797a10c73a1c8e02c8e6315a2930b"><td class="mdescLeft"> </td><td class="mdescRight">constructor with given another <a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a> <a href="#afee797a10c73a1c8e02c8e6315a2930b">More...</a><br/></td></tr> -<tr class="separator:afee797a10c73a1c8e02c8e6315a2930b"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a000ede7e217c31401cc0a4b1c6749ee5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a000ede7e217c31401cc0a4b1c6749ee5">Self</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &b)</td></tr> -<tr class="memdesc:a000ede7e217c31401cc0a4b1c6749ee5"><td class="mdescLeft"> </td><td class="mdescRight">Disallow copy constructor. <a href="#a000ede7e217c31401cc0a4b1c6749ee5">More...</a><br/></td></tr> -<tr class="separator:a000ede7e217c31401cc0a4b1c6749ee5"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ada16564a03665b10810a6342d61044bc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#ada16564a03665b10810a6342d61044bc">~Self</a> ()</td></tr> -<tr class="memdesc:ada16564a03665b10810a6342d61044bc"><td class="mdescLeft"> </td><td class="mdescRight">destructor <a href="#ada16564a03665b10810a6342d61044bc">More...</a><br/></td></tr> -<tr class="separator:ada16564a03665b10810a6342d61044bc"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a6063551c3e6ac647500e938ade8fbc99"><td class="memItemLeft" align="right" valign="top">Data const * </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a6063551c3e6ac647500e938ade8fbc99">operator-></a> () const </td></tr> -<tr class="memdesc:a6063551c3e6ac647500e938ade8fbc99"><td class="mdescLeft"> </td><td class="mdescRight">Return the constant pointer to the data. <a href="#a6063551c3e6ac647500e938ade8fbc99">More...</a><br/></td></tr> -<tr class="separator:a6063551c3e6ac647500e938ade8fbc99"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ace312355261c68ac7531767939f5c4c2"><td class="memItemLeft" align="right" valign="top">Data * </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#ace312355261c68ac7531767939f5c4c2">operator-></a> ()</td></tr> -<tr class="memdesc:ace312355261c68ac7531767939f5c4c2"><td class="mdescLeft"> </td><td class="mdescRight">Return the non-constant pointer to the data (COR's clone might occure here. <a href="#ace312355261c68ac7531767939f5c4c2">More...</a><br/></td></tr> -<tr class="separator:ace312355261c68ac7531767939f5c4c2"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a5962339e9ee49312ab770f1119256ca6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a5962339e9ee49312ab770f1119256ca6">operator()</a> () const </td></tr> -<tr class="memdesc:a5962339e9ee49312ab770f1119256ca6"><td class="mdescLeft"> </td><td class="mdescRight">Return the non-constant reference of <code>*this</code>. <a href="#a5962339e9ee49312ab770f1119256ca6">More...</a><br/></td></tr> -<tr class="separator:a5962339e9ee49312ab770f1119256ca6"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a9cd016a38a09f479fe2ed83eb1ebdae2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> const & </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a9cd016a38a09f479fe2ed83eb1ebdae2">copyFrom</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &s)</td></tr> -<tr class="memdesc:a9cd016a38a09f479fe2ed83eb1ebdae2"><td class="mdescLeft"> </td><td class="mdescRight">Copy the gived <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> to myself. <a href="#a9cd016a38a09f479fe2ed83eb1ebdae2">More...</a><br/></td></tr> -<tr class="separator:a9cd016a38a09f479fe2ed83eb1ebdae2"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a63e1570c927c7fa3b95b71fe978e355d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> const & </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a63e1570c927c7fa3b95b71fe978e355d">referenceFrom</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &s)</td></tr> -<tr class="memdesc:a63e1570c927c7fa3b95b71fe978e355d"><td class="mdescLeft"> </td><td class="mdescRight">Reference myself from given <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> object. <a href="#a63e1570c927c7fa3b95b71fe978e355d">More...</a><br/></td></tr> -<tr class="separator:a63e1570c927c7fa3b95b71fe978e355d"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ae4256bfc598bb0db76141ffce506806e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> const & </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#ae4256bfc598bb0db76141ffce506806e">duplicateFrom</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &s, <a class="el" href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8">DuplicateType</a> t)</td></tr> -<tr class="memdesc:ae4256bfc598bb0db76141ffce506806e"><td class="mdescLeft"> </td><td class="mdescRight">call <code><a class="el" href="classmeow_1_1Self.html#a9cd016a38a09f479fe2ed83eb1ebdae2" title="Copy the gived Self to myself. ">copyFrom()</a></code> or <code><a class="el" href="classmeow_1_1Self.html#a63e1570c927c7fa3b95b71fe978e355d" title="Reference myself from given Self object. ">referenceFrom()</a></code> depend on your instruction <a href="#ae4256bfc598bb0db76141ffce506806e">More...</a><br/></td></tr> -<tr class="separator:ae4256bfc598bb0db76141ffce506806e"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ab3671e44693b79e2f987f59652d46ca9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#ab3671e44693b79e2f987f59652d46ca9">same</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &s) const </td></tr> -<tr class="memdesc:ab3671e44693b79e2f987f59652d46ca9"><td class="mdescLeft"> </td><td class="mdescRight">Compare tht if the gived <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> object is reference from the same object of me. <a href="#ab3671e44693b79e2f987f59652d46ca9">More...</a><br/></td></tr> -<tr class="separator:ab3671e44693b79e2f987f59652d46ca9"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a91098e2218c358470e81d64f35d6491d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a91098e2218c358470e81d64f35d6491d">equal</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &s) const </td></tr> -<tr class="memdesc:a91098e2218c358470e81d64f35d6491d"><td class="mdescLeft"> </td><td class="mdescRight">Compare that the data are the same. <a href="#a91098e2218c358470e81d64f35d6491d">More...</a><br/></td></tr> -<tr class="separator:a91098e2218c358470e81d64f35d6491d"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a10f22a83c3afcf65f8f9680f2a2f945c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a10f22a83c3afcf65f8f9680f2a2f945c">referenceLess</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &s) const </td></tr> -<tr class="memdesc:a10f22a83c3afcf65f8f9680f2a2f945c"><td class="mdescLeft"> </td><td class="mdescRight">Order compare by reference pointer. <a href="#a10f22a83c3afcf65f8f9680f2a2f945c">More...</a><br/></td></tr> -<tr class="separator:a10f22a83c3afcf65f8f9680f2a2f945c"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:af3277e1109c59e5f81549889b344a675"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#af3277e1109c59e5f81549889b344a675">operator=</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &a)</td></tr> -<tr class="memdesc:af3277e1109c59e5f81549889b344a675"><td class="mdescLeft"> </td><td class="mdescRight">Disallow default <code>'operator='</code>. <a href="#af3277e1109c59e5f81549889b344a675">More...</a><br/></td></tr> -<tr class="separator:af3277e1109c59e5f81549889b344a675"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a48c3ce6897b3eebfad96a871f9fc2054"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a48c3ce6897b3eebfad96a871f9fc2054">Self</a> ()</td></tr> +<tr class="memdesc:a48c3ce6897b3eebfad96a871f9fc2054"><td class="mdescLeft"> </td><td class="mdescRight">Creates a new one. <a href="#a48c3ce6897b3eebfad96a871f9fc2054">More...</a><br/></td></tr> +<tr class="separator:a48c3ce6897b3eebfad96a871f9fc2054"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a698997f92ac64eb031b7f88f4c40a5cb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a698997f92ac64eb031b7f88f4c40a5cb">Self</a> (SelfType const &arg_body)</td></tr> +<tr class="memdesc:a698997f92ac64eb031b7f88f4c40a5cb"><td class="mdescLeft"> </td><td class="mdescRight">Creates a new one with specifying a initial value for SelfType object. <a href="#a698997f92ac64eb031b7f88f4c40a5cb">More...</a><br/></td></tr> +<tr class="separator:a698997f92ac64eb031b7f88f4c40a5cb"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aafab402f6b101bb60764bb8bc1997c47"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#aafab402f6b101bb60764bb8bc1997c47">Self</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &arg_another_self)</td></tr> +<tr class="memdesc:aafab402f6b101bb60764bb8bc1997c47"><td class="mdescLeft"> </td><td class="mdescRight">References from another one. <a href="#aafab402f6b101bb60764bb8bc1997c47">More...</a><br/></td></tr> +<tr class="separator:aafab402f6b101bb60764bb8bc1997c47"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0ef07d3b04626fc926a0a947b20bb8dd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a0ef07d3b04626fc926a0a947b20bb8dd">~Self</a> ()</td></tr> +<tr class="memdesc:a0ef07d3b04626fc926a0a947b20bb8dd"><td class="mdescLeft"> </td><td class="mdescRight">Detatches. <a href="#a0ef07d3b04626fc926a0a947b20bb8dd">More...</a><br/></td></tr> +<tr class="separator:a0ef07d3b04626fc926a0a947b20bb8dd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a11a512ee42009b48644dbb9dd44a5864"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> const & </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a11a512ee42009b48644dbb9dd44a5864">ReferenceFrom</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &arg_another_self)</td></tr> +<tr class="memdesc:a11a512ee42009b48644dbb9dd44a5864"><td class="mdescLeft"> </td><td class="mdescRight">References from another <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a> object. <a href="#a11a512ee42009b48644dbb9dd44a5864">More...</a><br/></td></tr> +<tr class="separator:a11a512ee42009b48644dbb9dd44a5864"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac69d081fd7d4227ffdda07d62a325b1d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> const & </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#ac69d081fd7d4227ffdda07d62a325b1d">CopyFrom</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &arg_another_self)</td></tr> +<tr class="memdesc:ac69d081fd7d4227ffdda07d62a325b1d"><td class="mdescLeft"> </td><td class="mdescRight">Copies the data in SelfType object from another <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a> object. <a href="#ac69d081fd7d4227ffdda07d62a325b1d">More...</a><br/></td></tr> +<tr class="separator:ac69d081fd7d4227ffdda07d62a325b1d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4e38ec4ad25ad6e9cdcaf1003d60d1a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a4e38ec4ad25ad6e9cdcaf1003d60d1a1">Copy</a> () const </td></tr> +<tr class="memdesc:a4e38ec4ad25ad6e9cdcaf1003d60d1a1"><td class="mdescLeft"> </td><td class="mdescRight">Creates a copy one of itself. <a href="#a4e38ec4ad25ad6e9cdcaf1003d60d1a1">More...</a><br/></td></tr> +<tr class="separator:a4e38ec4ad25ad6e9cdcaf1003d60d1a1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae7d3dbc4337452bf93fb61898b5d3c2c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#ae7d3dbc4337452bf93fb61898b5d3c2c">Is</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &arg_another_self) const </td></tr> +<tr class="memdesc:ae7d3dbc4337452bf93fb61898b5d3c2c"><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the gived instance of <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a> references from the same SelfType with me or not. <a href="#ae7d3dbc4337452bf93fb61898b5d3c2c">More...</a><br/></td></tr> +<tr class="separator:ae7d3dbc4337452bf93fb61898b5d3c2c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a17f88ab6c6e515b9c3c183145b0bf7a3"><td class="memItemLeft" align="right" valign="top">SelfType * </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a17f88ab6c6e515b9c3c183145b0bf7a3">operator-></a> ()</td></tr> +<tr class="memdesc:a17f88ab6c6e515b9c3c183145b0bf7a3"><td class="mdescLeft"> </td><td class="mdescRight">Access the instance of SelfType by address. <a href="#a17f88ab6c6e515b9c3c183145b0bf7a3">More...</a><br/></td></tr> +<tr class="separator:a17f88ab6c6e515b9c3c183145b0bf7a3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af414ac2a283abe9fa772760b65876b85"><td class="memItemLeft" align="right" valign="top">SelfType const * </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#af414ac2a283abe9fa772760b65876b85">operator-></a> () const </td></tr> +<tr class="memdesc:af414ac2a283abe9fa772760b65876b85"><td class="mdescLeft"> </td><td class="mdescRight">Access the instance of SelfType by constant address. <a href="#af414ac2a283abe9fa772760b65876b85">More...</a><br/></td></tr> +<tr class="separator:af414ac2a283abe9fa772760b65876b85"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abd43b3f1437425ccd1c2d7acc80a9cef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#abd43b3f1437425ccd1c2d7acc80a9cef">operator()</a> () const </td></tr> +<tr class="memdesc:abd43b3f1437425ccd1c2d7acc80a9cef"><td class="mdescLeft"> </td><td class="mdescRight">Access itself in non-constant mode. <a href="#abd43b3f1437425ccd1c2d7acc80a9cef">More...</a><br/></td></tr> +<tr class="separator:abd43b3f1437425ccd1c2d7acc80a9cef"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5b46b491e81d8c4120b1e7d9bf180855"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a5b46b491e81d8c4120b1e7d9bf180855">operator=</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &b)</td></tr> +<tr class="memdesc:a5b46b491e81d8c4120b1e7d9bf180855"><td class="mdescLeft"> </td><td class="mdescRight">Disallows the "operator=" so develops need to explicitly use CopyFrom/RefernceFrom. <a href="#a5b46b491e81d8c4120b1e7d9bf180855">More...</a><br/></td></tr> +<tr class="separator:a5b46b491e81d8c4120b1e7d9bf180855"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> -<div class="textblock"><h3>template<class Data><br/> -class meow::Self< Data ></h3> - -<p>For developer to pack the attributes of a class. </p> -<p>The idaa comes from python. Default C++'s reference machanism is very unflexible because a reference variable can only reference to an object without changing to other object. </p> -<pre class="fragment"> With this technique, it can achieve Copy-On-Write(COR) mechanism at - background and have a reference mechanism which much more flexible - then the one C++ has. -</pre><p>Sample code: </p> -<div class="fragment"><div class="line"><span class="keyword">class </span>A {</div> -<div class="line"><span class="keyword">private</span>:</div> -<div class="line"> <span class="keyword">struct </span>Myself {</div> -<div class="line"> <span class="keywordtype">int</span> data;</div> +<div class="textblock"><h3>template<typename SelfType><br/> +class meow::Self< SelfType ></h3> + +<p>An implementation for the reference mechanism. </p> +<p>Some example code: </p> +<div class="fragment"><div class="line"><span class="preprocessor">#include <<a class="code" href="self_8h.html">meowpp/utility/self.h</a>></span></div> <div class="line"></div> -<div class="line"> Myself() { <span class="comment">// Necessary</span></div> -<div class="line"> data = 0;</div> -<div class="line"> }</div> +<div class="line"><span class="keyword">class </span>A {</div> +<div class="line"> <span class="keyword">private</span>:</div> <div class="line"></div> -<div class="line"> Myself(Myself <span class="keyword">const</span>& b): data(b.data) { <span class="comment">// Necessary, copy constructor</span></div> -<div class="line"> }</div> +<div class="line"> <span class="comment">// Data members of this class. You can also move the methods of class A</span></div> +<div class="line"> <span class="comment">// into this structure if you like.</span></div> +<div class="line"> <span class="keyword">struct </span>DataMember {</div> +<div class="line"> <span class="keywordtype">int</span> var1;</div> +<div class="line"> <span class="keywordtype">int</span> var2;</div> +<div class="line"> <span class="keywordtype">int</span> counter;</div> <div class="line"></div> -<div class="line"> ~Myself() {</div> -<div class="line"> }</div> +<div class="line"> <span class="comment">// The constructor "Self<DataMember>::Self()" will call the constructor</span></div> +<div class="line"> <span class="comment">// "DataMember::DataMember()"</span></div> +<div class="line"> DataMember() : var1(0), var2(0), counter(0) {}</div> <div class="line"></div> -<div class="line"> <span class="keywordtype">bool</span> operator==(Myself <span class="keyword">const</span>& b)<span class="keyword"> const </span>{ <span class="comment">// Optional (this method will</span></div> -<div class="line"> <span class="comment">// be called only if you use</span></div> -<div class="line"> <span class="comment">// Self::equal() method)</span></div> -<div class="line"> <span class="keywordflow">return</span> (data == b.data);</div> +<div class="line"> <span class="comment">// The constructor "Self<DataMember>::Self(DataMember const&)" will call</span></div> +<div class="line"> <span class="comment">// the constructor "DataMember::DataMember(DataMember const&)"</span></div> +<div class="line"> DataMember(DataMember <span class="keyword">const</span>& b) :</div> +<div class="line"> var1(b.var1), var2(b.var2), counter(0) {}</div> +<div class="line"></div> +<div class="line"> <span class="comment">// Customize constructor.</span></div> +<div class="line"> DataMember(<span class="keywordtype">int</span> var1_init_value) :</div> +<div class="line"> var1(var1_init_value), var2(0), counter(0) {}</div> +<div class="line"></div> +<div class="line"> <span class="comment">// Destructor, will be called when nobody references to it.</span></div> +<div class="line"> ~DataMember() {}</div> +<div class="line"></div> +<div class="line"> <span class="comment">// The "Self<DataMember>::CopyFrom(Self<DataMember> const&)" will call</span></div> +<div class="line"> <span class="comment">// "DataMember::CopyFrom(DataMember const&)" to copy data.</span></div> +<div class="line"> DataMember <span class="keyword">const</span>& <a class="code" href="classmeow_1_1Self.html#ac69d081fd7d4227ffdda07d62a325b1d">CopyFrom</a>(DataMember <span class="keyword">const</span>& b) {</div> +<div class="line"> var1 = b.var1;</div> +<div class="line"> var2 = b.var2;</div> <div class="line"> }</div> <div class="line"> };</div> <div class="line"></div> -<div class="line"> Self<Myself> <span class="keyword">const</span> <span class="keyword">self</span>; <span class="comment">// Here we use 'constant' data type in</span></div> -<div class="line"> <span class="comment">// order to have a coutious coding style</span></div> -<div class="line"> <span class="comment">// and allow the COR mechanism to clone</span></div> -<div class="line"> <span class="comment">// data only when we really want to</span></div> -<div class="line"> <span class="comment">// modify them.</span></div> -<div class="line"><span class="keyword">public</span>:</div> -<div class="line"> A(): self() { } <span class="comment">// Default constructor</span></div> +<div class="line"> <a class="code" href="classmeow_1_1Self.html">meow::Self<DataMember></a> <span class="keyword">const</span> self_; <span class="comment">// Use constant type to reduce the</span></div> +<div class="line"> <span class="comment">// protential error caused by typing</span></div> +<div class="line"> <span class="comment">// wrong.</span></div> <div class="line"></div> -<div class="line"> A(A <span class="keyword">const</span>& a): self(a.self, <a class="code" href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730">COPY_FROM</a>) { } <span class="comment">// Copy constructor. You must</span></div> -<div class="line"> <span class="comment">// tell me which way of</span></div> -<div class="line"> <span class="comment">// duplicating should I use.</span></div> -<div class="line"> <span class="comment">// It strongly recommended you</span></div> -<div class="line"> <span class="comment">// use COYP_FROM for keeping the</span></div> -<div class="line"> <span class="comment">// C++'s original behavior.</span></div> -<div class="line"> ~A() { }</div> +<div class="line"> <span class="keyword">public</span>:</div> <div class="line"></div> -<div class="line"> <span class="keywordtype">int</span> getMemember(<span class="keywordtype">int</span> wh)<span class="keyword"> const </span>{</div> -<div class="line"> <span class="keywordflow">return</span> <span class="keyword">self</span>->data; <span class="comment">// Use 'operator->()' to get the pointer of the data</span></div> -<div class="line"> <span class="comment">// The pointer is constant or not will depend on</span></div> -<div class="line"> <span class="comment">// whether the left side variable of '->' is</span></div> -<div class="line"> <span class="comment">// constant or not.</span></div> -<div class="line"> <span class="comment">// If we just want to read the data, use</span></div> -<div class="line"> <span class="comment">// 'self' instead of 'self()'</span></div> -<div class="line"> }</div> -<div class="line"> <span class="keywordtype">void</span> setMemeber(<span class="keywordtype">int</span> k) {</div> -<div class="line"> <span class="keyword">self</span>()->data = k; <span class="comment">// As a result of 'self()' returning a non-constant</span></div> -<div class="line"> <span class="comment">// reference of itself, here we get the permission</span></div> -<div class="line"> <span class="comment">// for modiying data.</span></div> -<div class="line"> <span class="comment">// So now we can observe that if you type</span></div> -<div class="line"> <span class="comment">// 'Self<Myself> self' instead of the one above,</span></div> -<div class="line"> <span class="comment">// 'self' and 'self()' will become the same one and</span></div> -<div class="line"> <span class="comment">// both of them allow you using '->' for getting</span></div> -<div class="line"> <span class="comment">// writing permission. At the same time, the COR</span></div> -<div class="line"> <span class="comment">// machanism will become useless because everytime</span></div> -<div class="line"> <span class="comment">// you want to access the date, Self will copy the</span></div> -<div class="line"> <span class="comment">// data to prevent you to modify it no matter that</span></div> -<div class="line"> <span class="comment">// you might just want to read it.</span></div> -<div class="line"> }</div> +<div class="line"> <span class="comment">// Here the "Self<DataMember>::Self()" will be called.</span></div> +<div class="line"> A() {}</div> +<div class="line"></div> +<div class="line"> <span class="comment">// Notice! "Self<DataMember>::Self(Self const& another_self)" will let</span></div> +<div class="line"> <span class="comment">// itself reference to the gived object instead of creating a new one.</span></div> +<div class="line"> <span class="comment">// So here the copy constructor will not copy from the gived object, it</span></div> +<div class="line"> <span class="comment">// will just reference from it.</span></div> +<div class="line"> A(A <span class="keyword">const</span>& another_class_a) : self_(another_class_a.self_) {}</div> +<div class="line"></div> +<div class="line"> <span class="comment">// Customize constructor.</span></div> +<div class="line"> A(<span class="keywordtype">int</span> var1_init_value) : self_(DataMember(var1_init_value)) {}</div> +<div class="line"></div> +<div class="line"> <span class="comment">// You don't need to call some extra function in destructor, because</span></div> +<div class="line"> <span class="comment">// there's a counter in the Self class.</span></div> +<div class="line"> ~A() {}</div> <div class="line"></div> -<div class="line"> A <a class="code" href="classmeow_1_1Self.html#a63e1570c927c7fa3b95b71fe978e355d">referenceFrom</a>(A <span class="keyword">const</span>& a) {</div> -<div class="line"> <span class="keyword">self</span>.<a class="code" href="classmeow_1_1Self.html#a63e1570c927c7fa3b95b71fe978e355d">referenceFrom</a>(a.self);</div> +<div class="line"> <span class="comment">// A constant method.</span></div> +<div class="line"> <span class="keywordtype">int</span> GetVar1()<span class="keyword"> const </span>{</div> +<div class="line"> <span class="keywordflow">return</span> self_->var1; <span class="comment">// Use the operator "->" to access the address of</span></div> +<div class="line"> <span class="comment">// the DataMember. Because we declare self_ be a</span></div> +<div class="line"> <span class="comment">// constant type, here "self_->var1" will also be</span></div> +<div class="line"> <span class="comment">// a constant.</span></div> <div class="line"> }</div> <div class="line"></div> -<div class="line"> A <a class="code" href="classmeow_1_1Self.html#a9cd016a38a09f479fe2ed83eb1ebdae2">copyFrom</a>(A <span class="keyword">const</span>& a) {</div> -<div class="line"> <span class="keyword">self</span>.<a class="code" href="classmeow_1_1Self.html#a9cd016a38a09f479fe2ed83eb1ebdae2">copyFrom</a>(a.self);</div> +<div class="line"> <span class="comment">// A non-constant method.</span></div> +<div class="line"> <span class="keywordtype">void</span> SetVar1(<span class="keywordtype">int</span> new_value) {</div> +<div class="line"> <span class="keywordtype">int</span> old_value = self_->var1;</div> +<div class="line"> self_()->var1 = new_value; <span class="comment">// Use operator "()" (i.e. self_()) to</span></div> +<div class="line"> <span class="comment">// access the object with non-constant type,</span></div> +<div class="line"> <span class="comment">// so here "self_()->var1" will be a</span></div> +<div class="line"> <span class="comment">// non-constant variable.</span></div> +<div class="line"> <span class="keywordflow">if</span> (old_value != new_value) {</div> +<div class="line"> self_()->var2 = old_value;</div> +<div class="line"> <span class="comment">//self_->var2 = old_value; // !! It cause an error because operator "()"</span></div> +<div class="line"> <span class="comment">// is missed if you want to modify the member</span></div> +<div class="line"> <span class="comment">// in the DataMember.</span></div> +<div class="line"> }</div> <div class="line"> }</div> <div class="line"></div> -<div class="line"> A& <a class="code" href="classmeow_1_1Self.html#af3277e1109c59e5f81549889b344a675">operator=</a>(A <span class="keyword">const</span>& b) { <span class="comment">// If you really like to use operator=, it</span></div> -<div class="line"> <span class="comment">// strongly recommended you use 'copyFrom()' for</span></div> -<div class="line"> <span class="comment">// keeping C++'s original behavior.</span></div> -<div class="line"> <a class="code" href="classmeow_1_1Self.html#a9cd016a38a09f479fe2ed83eb1ebdae2">copyFrom</a>(b);</div> +<div class="line"> <span class="keywordtype">int</span> GetVar2()<span class="keyword"> const </span>{</div> +<div class="line"> self_()->counter += 1; <span class="comment">// !! It will not cause an error. Actually,</span></div> +<div class="line"> <span class="comment">// the "const" keyword of a method will become</span></div> +<div class="line"> <span class="comment">// more meanless, because inside the method, you</span></div> +<div class="line"> <span class="comment">// can just use self_-> or self_()-> to determind</span></div> +<div class="line"> <span class="comment">// whether you want to access the DataMember in</span></div> +<div class="line"> <span class="comment">// constant mode or not. It might be dangerous</span></div> +<div class="line"> <span class="comment">// but giving developer more flexable.</span></div> +<div class="line"> <span class="keywordflow">return</span> self_->var2;</div> <div class="line"> }</div> <div class="line">};</div> -</div><!-- fragment --><p> Note that '<a class="el" href="classmeow_1_1Self.html#a63e1570c927c7fa3b95b71fe978e355d" title="Reference myself from given Self object. ">referenceFrom()</a>' will cause the two object become the same one, Which means that if you do something like '<code>a.referenceFrom(b)</code>; <code>a.copyFrom(c)</code>; ', the result is that the value of <code>a</code>,b,c will all the same one.</p> -<dl class="section author"><dt>Author</dt><dd>cathook</dd></dl> -<dl class="section warning"><dt>Warning</dt><dd>This class disabled the method <code>operator=</code> and copy constructor in order to prevent unexplicit default behavior, so if you want to have one of them (or both), you must implement yourself </dd></dl> - -<p>Definition at line <a class="el" href="self_8h_source.html#l00110">110</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> -</div><h2 class="groupheader">Member Enumeration Documentation</h2> -<a class="anchor" id="aa7d169e9d20d590f3e571206084797f8"></a> +</div><!-- fragment --> +<p>Definition at line <a class="el" href="self_8h_source.html#l00117">117</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +</div><h2 class="groupheader">Constructor & Destructor Documentation</h2> +<a class="anchor" id="a48c3ce6897b3eebfad96a871f9fc2054"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> - <table class="memname"> - <tr> - <td class="memname">enum <a class="el" href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8">meow::Self::DuplicateType</a></td> - </tr> - </table> -</div><div class="memdoc"> - -<p>Kind of ways of duplicating. </p> -<table class="fieldtable"> -<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730"></a>COPY_FROM</em> </td><td class="fielddoc"> -<p>Normal copy operation. </p> -</td></tr> -<tr><td class="fieldname"><em><a class="anchor" id="aa7d169e9d20d590f3e571206084797f8a40c8a3eba568e04a5ce09ee0fa881822"></a>REFERENCE_FROM</em> </td><td class="fielddoc"> -<p>By reference, much like pointer's copy operation. </p> -</td></tr> -</table> - -<p>Definition at line <a class="el" href="self_8h_source.html#l00115">115</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> - -</div> -</div> -<h2 class="groupheader">Constructor & Destructor Documentation</h2> -<a class="anchor" id="a6b39fcc4b184809f9aeaeb1c9a0bac2d"></a> -<div class="memitem"> -<div class="memproto"> -<div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::<a class="el" href="classmeow_1_1Self.html">Self</a> </td> + <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::<a class="el" href="classmeow_1_1Self.html">Self</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> @@ -266,26 +231,26 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>constructor with a real entity </p> +<p>Creates a new one. </p> -<p>Definition at line <a class="el" href="self_8h_source.html#l00210">210</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00152">152</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> -<a class="anchor" id="af3220c1e1d7966c6dbaf4ec62f8cbc2f"></a> +<a class="anchor" id="a698997f92ac64eb031b7f88f4c40a5cb"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::<a class="el" href="classmeow_1_1Self.html">Self</a> </td> + <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::<a class="el" href="classmeow_1_1Self.html">Self</a> </td> <td>(</td> - <td class="paramtype">Data const & </td> - <td class="paramname"><em>d</em></td><td>)</td> + <td class="paramtype">SelfType const & </td> + <td class="paramname"><em>arg_body</em></td><td>)</td> <td></td> </tr> </table> @@ -296,43 +261,33 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>connstructor with a real entity with it using its copy constructor </p> +<p>Creates a new one with specifying a initial value for SelfType object. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> - <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>Inital data </td></tr> + <tr><td class="paramname">arg_body</td><td>The initial value of the SelfType object. </td></tr> </table> </dd> </dl> -<p>Definition at line <a class="el" href="self_8h_source.html#l00218">218</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00159">159</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> -<a class="anchor" id="afee797a10c73a1c8e02c8e6315a2930b"></a> +<a class="anchor" id="aafab402f6b101bb60764bb8bc1997c47"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::<a class="el" href="classmeow_1_1Self.html">Self</a> </td> + <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::<a class="el" href="classmeow_1_1Self.html">Self</a> </td> <td>(</td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< Data > const & </td> - <td class="paramname"><em>b</em>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8">DuplicateType</a> </td> - <td class="paramname"><em>d</em> </td> - </tr> - <tr> + <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< SelfType > const & </td> + <td class="paramname"><em>arg_another_self</em></td><td>)</td> <td></td> - <td>)</td> - <td></td><td></td> </tr> </table> </td> @@ -342,50 +297,29 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>constructor with given another <a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a> </p> +<p>References from another one. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> - <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Another <a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a> object. </td></tr> - <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>To indicate type of way of duplicating </td></tr> + <tr><td class="paramname">arg_another_self</td><td>Another <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a> object. </td></tr> </table> </dd> </dl> -<p>Definition at line <a class="el" href="self_8h_source.html#l00227">227</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00166">166</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> -<a class="anchor" id="a000ede7e217c31401cc0a4b1c6749ee5"></a> +<a class="anchor" id="a0ef07d3b04626fc926a0a947b20bb8dd"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> - <table class="memname"> - <tr> - <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::<a class="el" href="classmeow_1_1Self.html">Self</a> </td> - <td>(</td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< Data > const & </td> - <td class="paramname"><em>b</em></td><td>)</td> - <td></td> - </tr> - </table> -</div><div class="memdoc"> - -<p>Disallow copy constructor. </p> - -</div> -</div> -<a class="anchor" id="ada16564a03665b10810a6342d61044bc"></a> -<div class="memitem"> -<div class="memproto"> -<div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::~<a class="el" href="classmeow_1_1Self.html">Self</a> </td> + <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::~<a class="el" href="classmeow_1_1Self.html">Self</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> @@ -398,28 +332,28 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>destructor </p> +<p>Detatches. </p> +<p>It will automatically clear the SelfType object when no one refernece from it. </p> -<p>Definition at line <a class="el" href="self_8h_source.html#l00243">243</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00174">174</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> -<a class="anchor" id="a9cd016a38a09f479fe2ed83eb1ebdae2"></a> +<a class="anchor" id="a4e38ec4ad25ad6e9cdcaf1003d60d1a1"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname"><a class="el" href="classmeow_1_1Self.html">Self</a> const& <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::copyFrom </td> + <td class="memname"><a class="el" href="classmeow_1_1Self.html">Self</a> <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::Copy </td> <td>(</td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< Data > const & </td> - <td class="paramname"><em>s</em></td><td>)</td> - <td></td> + <td class="paramname"></td><td>)</td> + <td> const</td> </tr> </table> </td> @@ -429,44 +363,27 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>Copy the gived <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> to myself. </p> -<dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>gived <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> </td></tr> - </table> - </dd> -</dl> -<dl class="section return"><dt>Returns</dt><dd>*this </dd></dl> +<p>Creates a copy one of itself. </p> -<p>Definition at line <a class="el" href="self_8h_source.html#l00270">270</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00198">198</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> -<a class="anchor" id="ae4256bfc598bb0db76141ffce506806e"></a> +<a class="anchor" id="ac69d081fd7d4227ffdda07d62a325b1d"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname"><a class="el" href="classmeow_1_1Self.html">Self</a> const& <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::duplicateFrom </td> + <td class="memname"><a class="el" href="classmeow_1_1Self.html">Self</a> const& <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::CopyFrom </td> <td>(</td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< Data > const & </td> - <td class="paramname"><em>s</em>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html#aa7d169e9d20d590f3e571206084797f8">DuplicateType</a> </td> - <td class="paramname"><em>t</em> </td> - </tr> - <tr> + <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< SelfType > const & </td> + <td class="paramname"><em>arg_another_self</em></td><td>)</td> <td></td> - <td>)</td> - <td></td><td></td> </tr> </table> </td> @@ -476,34 +393,32 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>call <code><a class="el" href="classmeow_1_1Self.html#a9cd016a38a09f479fe2ed83eb1ebdae2" title="Copy the gived Self to myself. ">copyFrom()</a></code> or <code><a class="el" href="classmeow_1_1Self.html#a63e1570c927c7fa3b95b71fe978e355d" title="Reference myself from given Self object. ">referenceFrom()</a></code> depend on your instruction </p> +<p>Copies the data in SelfType object from another <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a> object. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> - <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>gived <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> object </td></tr> - <tr><td class="paramdir">[in]</td><td class="paramname">t</td><td>instruction </td></tr> + <tr><td class="paramname">arg_another_self</td><td>Another <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a> object. </td></tr> </table> </dd> </dl> -<dl class="section return"><dt>Returns</dt><dd>*this </dd></dl> -<p>Definition at line <a class="el" href="self_8h_source.html#l00299">299</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00190">190</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> -<a class="anchor" id="a91098e2218c358470e81d64f35d6491d"></a> +<a class="anchor" id="ae7d3dbc4337452bf93fb61898b5d3c2c"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname">bool <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::equal </td> + <td class="memname">bool <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::Is </td> <td>(</td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< Data > const & </td> - <td class="paramname"><em>s</em></td><td>)</td> + <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< SelfType > const & </td> + <td class="paramname"><em>arg_another_self</em></td><td>)</td> <td> const</td> </tr> </table> @@ -514,31 +429,30 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>Compare that the data are the same. </p> +<p>Checks whether the gived instance of <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a> references from the same SelfType with me or not. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> - <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>another <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> object </td></tr> + <tr><td class="paramname">arg_another_self</td><td>Another instance of <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a>. </td></tr> </table> </dd> </dl> -<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the data are same.</dd></dl> -<dl class="section note"><dt>Note</dt><dd>This will need the method 'Data::equal()' </dd></dl> +<dl class="section return"><dt>Returns</dt><dd>true if we references from the same thing. </dd></dl> -<p>Definition at line <a class="el" href="self_8h_source.html#l00326">326</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00206">206</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> -<a class="anchor" id="a5962339e9ee49312ab770f1119256ca6"></a> +<a class="anchor" id="abd43b3f1437425ccd1c2d7acc80a9cef"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname"><a class="el" href="classmeow_1_1Self.html">Self</a>& <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::operator() </td> + <td class="memname"><a class="el" href="classmeow_1_1Self.html">Self</a>& <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::operator() </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> @@ -551,26 +465,26 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>Return the non-constant reference of <code>*this</code>. </p> +<p>Access itself in non-constant mode. </p> -<p>Definition at line <a class="el" href="self_8h_source.html#l00260">260</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00227">227</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> -<a class="anchor" id="a6063551c3e6ac647500e938ade8fbc99"></a> +<a class="anchor" id="a17f88ab6c6e515b9c3c183145b0bf7a3"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname">Data const* <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::operator-> </td> + <td class="memname">SelfType* <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::operator-> </td> <td>(</td> <td class="paramname"></td><td>)</td> - <td> const</td> + <td></td> </tr> </table> </td> @@ -580,26 +494,26 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>Return the constant pointer to the data. </p> +<p>Access the instance of SelfType by address. </p> -<p>Definition at line <a class="el" href="self_8h_source.html#l00248">248</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00213">213</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> -<a class="anchor" id="ace312355261c68ac7531767939f5c4c2"></a> +<a class="anchor" id="af414ac2a283abe9fa772760b65876b85"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname">Data* <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::operator-> </td> + <td class="memname">SelfType const* <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::operator-> </td> <td>(</td> <td class="paramname"></td><td>)</td> - <td></td> + <td> const</td> </tr> </table> </td> @@ -609,46 +523,46 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>Return the non-constant pointer to the data (COR's clone might occure here. </p> +<p>Access the instance of SelfType by constant address. </p> -<p>Definition at line <a class="el" href="self_8h_source.html#l00255">255</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00220">220</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> -<a class="anchor" id="af3277e1109c59e5f81549889b344a675"></a> +<a class="anchor" id="a5b46b491e81d8c4120b1e7d9bf180855"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="memname"> <tr> - <td class="memname">void <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::operator= </td> + <td class="memname"><a class="el" href="classmeow_1_1Self.html">Self</a>& <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::operator= </td> <td>(</td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< Data > const & </td> - <td class="paramname"><em>a</em></td><td>)</td> + <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< SelfType > const & </td> + <td class="paramname"><em>b</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> -<p>Disallow default <code>'operator='</code>. </p> +<p>Disallows the "operator=" so develops need to explicitly use CopyFrom/RefernceFrom. </p> </div> </div> -<a class="anchor" id="a63e1570c927c7fa3b95b71fe978e355d"></a> +<a class="anchor" id="a11a512ee42009b48644dbb9dd44a5864"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> -template<class Data> </div> +template<typename SelfType> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> - <td class="memname"><a class="el" href="classmeow_1_1Self.html">Self</a> const& <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::referenceFrom </td> + <td class="memname"><a class="el" href="classmeow_1_1Self.html">Self</a> const& <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< SelfType >::ReferenceFrom </td> <td>(</td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< Data > const & </td> - <td class="paramname"><em>s</em></td><td>)</td> + <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< SelfType > const & </td> + <td class="paramname"><em>arg_another_self</em></td><td>)</td> <td></td> </tr> </table> @@ -659,94 +573,20 @@ template<class Data> </div> </table> </div><div class="memdoc"> -<p>Reference myself from given <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> object. </p> -<dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>given <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> </td></tr> - </table> - </dd> -</dl> -<dl class="section return"><dt>Returns</dt><dd>*this </dd></dl> - -<p>Definition at line <a class="el" href="self_8h_source.html#l00283">283</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> - -</div> -</div> -<a class="anchor" id="a10f22a83c3afcf65f8f9680f2a2f945c"></a> -<div class="memitem"> -<div class="memproto"> -<div class="memtemplate"> -template<class Data> </div> -<table class="mlabels"> - <tr> - <td class="mlabels-left"> - <table class="memname"> - <tr> - <td class="memname">bool <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::referenceLess </td> - <td>(</td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< Data > const & </td> - <td class="paramname"><em>s</em></td><td>)</td> - <td> const</td> - </tr> - </table> - </td> - <td class="mlabels-right"> -<span class="mlabels"><span class="mlabel">inline</span></span> </td> - </tr> -</table> -</div><div class="memdoc"> - -<p>Order compare by reference pointer. </p> -<dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>another <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> object </td></tr> - </table> - </dd> -</dl> - -<p>Definition at line <a class="el" href="self_8h_source.html#l00336">336</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> - -</div> -</div> -<a class="anchor" id="ab3671e44693b79e2f987f59652d46ca9"></a> -<div class="memitem"> -<div class="memproto"> -<div class="memtemplate"> -template<class Data> </div> -<table class="mlabels"> - <tr> - <td class="mlabels-left"> - <table class="memname"> - <tr> - <td class="memname">bool <a class="el" href="classmeow_1_1Self.html">meow::Self</a>< Data >::same </td> - <td>(</td> - <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>< Data > const & </td> - <td class="paramname"><em>s</em></td><td>)</td> - <td> const</td> - </tr> - </table> - </td> - <td class="mlabels-right"> -<span class="mlabels"><span class="mlabel">inline</span></span> </td> - </tr> -</table> -</div><div class="memdoc"> - -<p>Compare tht if the gived <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> object is reference from the same object of me. </p> +<p>References from another <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a> object. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> - <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>gived <code><a class="el" href="classmeow_1_1Self.html" title="For developer to pack the attributes of a class. ">Self</a></code> object </td></tr> + <tr><td class="paramname">arg_another_self</td><td>Another <a class="el" href="classmeow_1_1Self.html" title="An implementation for the reference mechanism. ">Self</a> object. </td></tr> </table> </dd> </dl> -<dl class="section return"><dt>Returns</dt><dd><code>true</code> if we are referenced to the same object. </dd></dl> -<p>Definition at line <a class="el" href="self_8h_source.html#l00314">314</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> +<p>Definition at line <a class="el" href="self_8h_source.html#l00180">180</a> of file <a class="el" href="self_8h_source.html">self.h</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> -<li>meowpp/<a class="el" href="self_8h_source.html">self.h</a></li> +<li>/home/cathook/Projects/template_meow/meowpp/utility/<a class="el" href="self_8h_source.html">self.h</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> @@ -755,7 +595,7 @@ template<class Data> </div> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="namespacemeow.html">meow</a></li><li class="navelem"><a class="el" href="classmeow_1_1Self.html">Self</a></li> - <li class="footer">Generated on Mon Sep 8 2014 21:25:41 for Templates -- Meow by + <li class="footer">Generated on Mon Sep 29 2014 16:41:30 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> |