aboutsummaryrefslogtreecommitdiffstats
path: root/doc/html/classmeow_1_1Self.html
diff options
context:
space:
mode:
authorcathook <b01902109@csie.ntu.edu.tw>2014-06-01 13:56:57 +0800
committercathook <b01902109@csie.ntu.edu.tw>2014-06-01 13:56:57 +0800
commitd5052f1c296dddf51b3e83d59bf3e3c1952cb2d0 (patch)
tree16f7920c5079e0aefcf9509d2dbab59c464d42bd /doc/html/classmeow_1_1Self.html
parentbd58f63900410ec4764031f2e6de2d75e91434b3 (diff)
downloadmeow-d5052f1c296dddf51b3e83d59bf3e3c1952cb2d0.tar
meow-d5052f1c296dddf51b3e83d59bf3e3c1952cb2d0.tar.gz
meow-d5052f1c296dddf51b3e83d59bf3e3c1952cb2d0.tar.bz2
meow-d5052f1c296dddf51b3e83d59bf3e3c1952cb2d0.tar.lz
meow-d5052f1c296dddf51b3e83d59bf3e3c1952cb2d0.tar.xz
meow-d5052f1c296dddf51b3e83d59bf3e3c1952cb2d0.tar.zst
meow-d5052f1c296dddf51b3e83d59bf3e3c1952cb2d0.zip
big chnage
Diffstat (limited to 'doc/html/classmeow_1_1Self.html')
-rw-r--r--doc/html/classmeow_1_1Self.html544
1 files changed, 544 insertions, 0 deletions
diff --git a/doc/html/classmeow_1_1Self.html b/doc/html/classmeow_1_1Self.html
new file mode 100644
index 0000000..d753e2b
--- /dev/null
+++ b/doc/html/classmeow_1_1Self.html
@@ -0,0 +1,544 @@
+<!-- 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.3.1"/>
+<title>Templates -- Meow: meow::Self&lt; Data &gt; 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>
+<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
+ &#160;<span id="projectnumber">1.1.2</span>
+ </div>
+ <div id="projectbrief">不能,也不應該先編譯成obj-file的templates</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+</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('classmeow_1_1Self.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classmeow_1_1Self-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">meow::Self&lt; Data &gt; Class Template Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>具有copy on write, 且擁有比C++更靈活的reference機制
+ <a href="classmeow_1_1Self.html#details">More...</a></p>
+
+<p><code>#include &quot;<a class="el" href="Self_8h_source.html">Self.h</a>&quot;</code></p>
+<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:a0db7c98f250aeee3b06a49ebe0f16937"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a0db7c98f250aeee3b06a49ebe0f16937">Self</a> (bool create_body)</td></tr>
+<tr class="memdesc:a0db7c98f250aeee3b06a49ebe0f16937"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor <a href="#a0db7c98f250aeee3b06a49ebe0f16937">More...</a><br/></td></tr>
+<tr class="separator:a0db7c98f250aeee3b06a49ebe0f16937"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a000ede7e217c31401cc0a4b1c6749ee5"><td class="memItemLeft" align="right" valign="top">&#160;</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 &amp;b)</td></tr>
+<tr class="memdesc:a000ede7e217c31401cc0a4b1c6749ee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">不允許copy constructor <a href="#a000ede7e217c31401cc0a4b1c6749ee5">More...</a><br/></td></tr>
+<tr class="separator:a000ede7e217c31401cc0a4b1c6749ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada16564a03665b10810a6342d61044bc"><td class="memItemLeft" align="right" valign="top">&#160;</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">&#160;</td><td class="mdescRight">解構子 <a href="#ada16564a03665b10810a6342d61044bc">More...</a><br/></td></tr>
+<tr class="separator:ada16564a03665b10810a6342d61044bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6063551c3e6ac647500e938ade8fbc99"><td class="memItemLeft" align="right" valign="top">Data const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a6063551c3e6ac647500e938ade8fbc99">operator-&gt;</a> () const </td></tr>
+<tr class="memdesc:a6063551c3e6ac647500e938ade8fbc99"><td class="mdescLeft">&#160;</td><td class="mdescRight">回傳指向 Data const 的指標 <a href="#a6063551c3e6ac647500e938ade8fbc99">More...</a><br/></td></tr>
+<tr class="separator:a6063551c3e6ac647500e938ade8fbc99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace312355261c68ac7531767939f5c4c2"><td class="memItemLeft" align="right" valign="top">Data *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#ace312355261c68ac7531767939f5c4c2">operator-&gt;</a> ()</td></tr>
+<tr class="memdesc:ace312355261c68ac7531767939f5c4c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">回傳指向 Data 的指標, 如有需要, 這邊會做資料的duplicate <a href="#ace312355261c68ac7531767939f5c4c2">More...</a><br/></td></tr>
+<tr class="separator:ace312355261c68ac7531767939f5c4c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5962339e9ee49312ab770f1119256ca6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmeow_1_1Self.html">Self</a> &amp;&#160;</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">&#160;</td><td class="mdescRight">回傳非const型態的自己 <a href="#a5962339e9ee49312ab770f1119256ca6">More...</a><br/></td></tr>
+<tr class="separator:a5962339e9ee49312ab770f1119256ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ae7da730705bf2330a259308e5a6828"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a7ae7da730705bf2330a259308e5a6828">copyFrom</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &amp;s)</td></tr>
+<tr class="memdesc:a7ae7da730705bf2330a259308e5a6828"><td class="mdescLeft">&#160;</td><td class="mdescRight">將給定的 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> 的資料複製到自己這裡 <a href="#a7ae7da730705bf2330a259308e5a6828">More...</a><br/></td></tr>
+<tr class="separator:a7ae7da730705bf2330a259308e5a6828"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a576e99ba0ba6e8263b4d2cfd9238440f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmeow_1_1Self.html#a576e99ba0ba6e8263b4d2cfd9238440f">referenceFrom</a> (<a class="el" href="classmeow_1_1Self.html">Self</a> const &amp;s)</td></tr>
+<tr class="memdesc:a576e99ba0ba6e8263b4d2cfd9238440f"><td class="mdescLeft">&#160;</td><td class="mdescRight">將自己reference 到給定的 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> <a href="#a576e99ba0ba6e8263b4d2cfd9238440f">More...</a><br/></td></tr>
+<tr class="separator:a576e99ba0ba6e8263b4d2cfd9238440f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3671e44693b79e2f987f59652d46ca9"><td class="memItemLeft" align="right" valign="top">bool&#160;</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 &amp;s) const </td></tr>
+<tr class="memdesc:ab3671e44693b79e2f987f59652d46ca9"><td class="mdescLeft">&#160;</td><td class="mdescRight">比對兩個 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> 是否指向同一個reference <a href="#ab3671e44693b79e2f987f59652d46ca9">More...</a><br/></td></tr>
+<tr class="separator:ab3671e44693b79e2f987f59652d46ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91098e2218c358470e81d64f35d6491d"><td class="memItemLeft" align="right" valign="top">bool&#160;</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 &amp;s) const </td></tr>
+<tr class="memdesc:a91098e2218c358470e81d64f35d6491d"><td class="mdescLeft">&#160;</td><td class="mdescRight">比對兩個 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> 的內容是否一樣 <a href="#a91098e2218c358470e81d64f35d6491d">More...</a><br/></td></tr>
+<tr class="separator:a91098e2218c358470e81d64f35d6491d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10f22a83c3afcf65f8f9680f2a2f945c"><td class="memItemLeft" align="right" valign="top">bool&#160;</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 &amp;s) const </td></tr>
+<tr class="memdesc:a10f22a83c3afcf65f8f9680f2a2f945c"><td class="mdescLeft">&#160;</td><td class="mdescRight">以reference作為判斷依據的小於判斷 <a href="#a10f22a83c3afcf65f8f9680f2a2f945c">More...</a><br/></td></tr>
+<tr class="separator:a10f22a83c3afcf65f8f9680f2a2f945c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3277e1109c59e5f81549889b344a675"><td class="memItemLeft" align="right" valign="top">void&#160;</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 &amp;a)</td></tr>
+<tr class="memdesc:af3277e1109c59e5f81549889b344a675"><td class="mdescLeft">&#160;</td><td class="mdescRight">將 <code>operator=</code> 給disable掉 <a href="#af3277e1109c59e5f81549889b344a675">More...</a><br/></td></tr>
+<tr class="separator:af3277e1109c59e5f81549889b344a675"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;class Data&gt;<br/>
+class meow::Self&lt; Data &gt;</h3>
+
+<p>具有copy on write, 且擁有比C++更靈活的reference機制 </p>
+<p>使用上就是把所有成員變數包到一個class/structure裡, 送給Self <br/>
+ 例如以下 </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="line"> Myself(){</div>
+<div class="line"> data = 0;</div>
+<div class="line"> }</div>
+<div class="line"> ~Myself() {</div>
+<div class="line"> }</div>
+<div class="line"> Myself <a class="code" href="classmeow_1_1Self.html#a7ae7da730705bf2330a259308e5a6828" title="將給定的 Self 的資料複製到自己這裡">copyFrom</a>(Myself <span class="keyword">const</span>&amp; ms)<span class="keyword"> const </span>{</div>
+<div class="line"> data = ms.data;</div>
+<div class="line"> }</div>
+<div class="line"> };</div>
+<div class="line"> Self&lt;Myself&gt; <span class="keyword">const</span> <span class="keyword">self</span>;</div>
+<div class="line"><span class="keyword">public</span>:</div>
+<div class="line"> A(): self(true) { <span class="comment">// self(true) 表示要建立實體, 即struct Myself</span></div>
+<div class="line"> }</div>
+<div class="line"> A(A <span class="keyword">const</span>&amp; a): self(false) { <span class="comment">// for std::swap</span></div>
+<div class="line"> <a class="code" href="classmeow_1_1Self.html#a7ae7da730705bf2330a259308e5a6828" title="將給定的 Self 的資料複製到自己這裡">copyFrom</a>(a);</div>
+<div class="line"> }</div>
+<div class="line"> <span class="comment">// A(A const&amp; a); // disable 模糊用法, 與上者二選一</span></div>
+<div class="line"> A(A <span class="keyword">const</span>&amp; a, <span class="keywordtype">bool</span> reference): self(false) {</div>
+<div class="line"> <span class="keywordflow">if</span> (reference) {</div>
+<div class="line"> <a class="code" href="classmeow_1_1Self.html#a576e99ba0ba6e8263b4d2cfd9238440f" title="將自己reference 到給定的 Self ">referenceFrom</a>(a);</div>
+<div class="line"> } <span class="keywordflow">else</span> {</div>
+<div class="line"> <a class="code" href="classmeow_1_1Self.html#a7ae7da730705bf2330a259308e5a6828" title="將給定的 Self 的資料複製到自己這裡">copyFrom</a>(a);</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> ~A() {</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>()-&gt;data = k; <span class="comment">// self()-&gt;?? 可以有write權限</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>-&gt;data; <span class="comment">// self-&gt;?? 只有const</span></div>
+<div class="line"> }</div>
+<div class="line"> A <a class="code" href="classmeow_1_1Self.html#a576e99ba0ba6e8263b4d2cfd9238440f" title="將自己reference 到給定的 Self ">referenceFrom</a>(A <span class="keyword">const</span>&amp; a) {</div>
+<div class="line"> <span class="keyword">self</span>.referenceFrom(a.self);</div>
+<div class="line"> }</div>
+<div class="line"> A <a class="code" href="classmeow_1_1Self.html#a7ae7da730705bf2330a259308e5a6828" title="將給定的 Self 的資料複製到自己這裡">copyFrom</a>(A <span class="keyword">const</span>&amp; a) {</div>
+<div class="line"> <span class="keyword">self</span>.copyFrom(a.self);</div>
+<div class="line"> }</div>
+<div class="line"> A&amp; <a class="code" href="classmeow_1_1Self.html#af3277e1109c59e5f81549889b344a675" title="將 operator= 給disable掉">operator=</a>(A <span class="keyword">const</span>&amp; b) { <span class="comment">// for std::swap</span></div>
+<div class="line"> <a class="code" href="classmeow_1_1Self.html#a7ae7da730705bf2330a259308e5a6828" title="將給定的 Self 的資料複製到自己這裡">copyFrom</a>(b);</div>
+<div class="line"> }</div>
+<div class="line"> A&amp; <a class="code" href="classmeow_1_1Self.html#af3277e1109c59e5f81549889b344a675" title="將 operator= 給disable掉">operator=</a>(A <span class="keyword">const</span>&amp; b); <span class="comment">// 避免諢亂用法</span></div>
+<div class="line">};</div>
+</div><!-- fragment --><dl class="section author"><dt>Author</dt><dd>cathook</dd></dl>
+<dl class="section warning"><dt>Warning</dt><dd><code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> 這個class會把<code>operator=</code> 給disable掉, 所以使用它當 kernel的class預設的 <code>operator=</code> 都會無法使用 </dd></dl>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a0db7c98f250aeee3b06a49ebe0f16937"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </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>&lt; Data &gt;::<a class="el" href="classmeow_1_1Self.html">Self</a> </td>
+ <td>(</td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>create_body</em></td><td>)</td>
+ <td></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>constructor </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">create_body</td><td>是否要new一個實體資料 (如果constructor完, 馬上就要 <code><a class="el" href="classmeow_1_1Self.html#a7ae7da730705bf2330a259308e5a6828" title="將給定的 Self 的資料複製到自己這裡">copyFrom()</a></code> , 或是 <code><a class="el" href="classmeow_1_1Self.html#a576e99ba0ba6e8263b4d2cfd9238440f" title="將自己reference 到給定的 Self ">referenceFrom()</a></code> 的話 不太需要 new一個實體, 否則基本上都要 </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a000ede7e217c31401cc0a4b1c6749ee5"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classmeow_1_1Self.html">meow::Self</a>&lt; Data &gt;::<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>&lt; Data &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>不允許copy constructor </p>
+
+</div>
+</div>
+<a class="anchor" id="ada16564a03665b10810a6342d61044bc"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </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>&lt; Data &gt;::~<a class="el" href="classmeow_1_1Self.html">Self</a> </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></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>解構子 </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a7ae7da730705bf2330a259308e5a6828"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classmeow_1_1Self.html">meow::Self</a>&lt; Data &gt;::copyFrom </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>&lt; Data &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>s</em></td><td>)</td>
+ <td></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>將給定的 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> 的資料複製到自己這裡 </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>給定的<code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>無</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>與reference的差別是, copy之後若該給定的 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> 有資料修改, this 這邊 <b>不會</b> 被改到 </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a91098e2218c358470e81d64f35d6491d"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </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>&lt; Data &gt;::equal </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>&lt; Data &gt; const &amp;&#160;</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>比對兩個 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> 的內容是否一樣 </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>另一個 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd><code>true/false</code> 表示兩個內容是否一樣</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>需要用到 Data的equal() </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5962339e9ee49312ab770f1119256ca6"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </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>&amp; <a class="el" href="classmeow_1_1Self.html">meow::Self</a>&lt; Data &gt;::operator() </td>
+ <td>(</td>
+ <td class="paramname"></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>回傳非const型態的自己 </p>
+
+</div>
+</div>
+<a class="anchor" id="a6063551c3e6ac647500e938ade8fbc99"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </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>&lt; Data &gt;::operator-&gt; </td>
+ <td>(</td>
+ <td class="paramname"></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>回傳指向 Data const 的指標 </p>
+
+</div>
+</div>
+<a class="anchor" id="ace312355261c68ac7531767939f5c4c2"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </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>&lt; Data &gt;::operator-&gt; </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></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>回傳指向 Data 的指標, 如有需要, 這邊會做資料的duplicate </p>
+
+</div>
+</div>
+<a class="anchor" id="af3277e1109c59e5f81549889b344a675"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classmeow_1_1Self.html">meow::Self</a>&lt; Data &gt;::operator= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>&lt; Data &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>將 <code>operator=</code> 給disable掉 </p>
+
+</div>
+</div>
+<a class="anchor" id="a576e99ba0ba6e8263b4d2cfd9238440f"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classmeow_1_1Self.html">meow::Self</a>&lt; Data &gt;::referenceFrom </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>&lt; Data &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>s</em></td><td>)</td>
+ <td></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>將自己reference 到給定的 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>給定的<code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>無</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>把reference想像成指標會比較容易思考, 譬如 <code>a.referenceFrom(b)</code> <code>b.referenceFrom(c)</code> 相當於 <b>a指向b原本指的記憶體位置</b>, <b>b指向c原本指的記憶體位置</b> , 之後更動c時, 只有b會被牽連 </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a10f22a83c3afcf65f8f9680f2a2f945c"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </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>&lt; Data &gt;::referenceLess </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>&lt; Data &gt; const &amp;&#160;</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>以reference作為判斷依據的小於判斷 </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>另一個 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd><code>true/false</code> 表示自己是否小於另一個 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab3671e44693b79e2f987f59652d46ca9"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class Data&gt; </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>&lt; Data &gt;::same </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classmeow_1_1Self.html">Self</a>&lt; Data &gt; const &amp;&#160;</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>比對兩個 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> 是否指向同一個reference </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>另一個 <code><a class="el" href="classmeow_1_1Self.html" title="具有copy on write, 且擁有比C++更靈活的reference機制">Self</a></code> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd><code>true/false</code> 表示是否為同一個reference </dd></dl>
+
+</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>
+</ul>
+</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="namespacemeow.html">meow</a></li><li class="navelem"><a class="el" href="classmeow_1_1Self.html">Self</a></li>
+ <li class="footer">Generated on Sun Jun 1 2014 13:54:37 for Templates -- Meow by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
+ </ul>
+</div>
+</body>
+</html>