aboutsummaryrefslogblamecommitdiffstats
path: root/doc/latex/classmeow_1_1Self.tex
blob: 9043206b78699e6d81eb13426332869cfc7eb4d4 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12




                                                                                             
                                                                                                                                                                                                                                         





                                                  





                                                                                                                                                                                                                         
                                                                                                                


                                     
                                                                        
                                                                                                
                                                                                      


                                                                                                                                                                                                         
                                                                                                                     
                                                                                            
                                                                                
                                                                            
                                                                                                           
                                                                                                          
                                                                                              
                                                                                                                                                   
                                                                                                                            
                                                                                                                                
                                                                                                                                                                        
                                                                                                                                           
                                                                                                                                                                             
                                                                                                                                                     
                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                             
                                                                                                                                 
                                                                                                                                                                                          
                                                                                                                                  
                                                                                                     
                                                                                                                                            
                                                                                                     
                                                                                                                               
                                                                                                                             




                                                                         
                                                                                                                                                                                                                                        
 
               




                                       

                                                                               

               

                                                                                                                      
      
 

                



                                                                                                                                                                   
                                                       

      
 




                                                                                                                                          
                            







                                                                                                                                                                                                                         
            
 
                                                                                                         



















                                                                                                                                                
    
 

                                                                                                                      
    
 

                                                                                                                 
    



                                                                                                                                                                                   
                                                                                 
    

              
                                                                                                                                                                                                                                                                                                                                        




                            
                                                                                                                                                                                                     


                 



                                        





                                                                                                                                                                                                          
                             





                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                           
                                                                     


          



                                        
                                                    








                                                                                                                                    




                                        









                                                                                                                                    
                                                                   





                                         




                                                                                                                     


                                                                                                                                    
                                             
                                 
                      
                                                                                                

 
                                                                   


                                 
                                                                                 
      
                                                                    

                



                                        








                                                                                                                                    
                           









                                                                                                                                                  




                                        



                                          
                                                                                                                                 
                                                           
                                                                                                                                                             


                                           
                                                                                                

 
                                                                          


                                 
                                                                                   


                           
           
                



                                        









                                                                                                                                                                       
                                                                                                                                                                                                                            


                                 
                                                                                          
      
                                         




                           



                                        








                                                                                                                                     
                                    


                                 
                                                                                            


                           
                                      

                      
                                            
              



                                        








                                                                                                                                                       




                                                               









                                                                                                                                                                   




                                         









                                                                                                                                                             




                                                                                  









                                                                                                                                             
                                          
 
                                                                                                                                           
                                                                     
                                                                                                                                                                       


                                           
                                                                                                

 
                                                                                    


                                 
                                                                                   


                           
           
                



                                        








                                                                                                                                                         
                                    


                                 
                                                                                            

                



                                        








                                                                                                                                   
                                                                                                                         


                                 
                                                                                          


                           
                                                          


                



                                        


                                                                                                   
\hypertarget{classmeow_1_1Self}{\section{meow\-:\-:Self$<$ Data $>$ Class Template Reference}
\label{classmeow_1_1Self}\index{meow\-::\-Self$<$ Data $>$@{meow\-::\-Self$<$ Data $>$}}
}


A little class use for packing the data part of another class. With this technique, it can achieve Copy-\/\-On-\/\-Write(C\-O\-R) mechanism at background and have a reference mechanism which much more flexible then the one C++ has.  




{\ttfamily \#include \char`\"{}Self.\-h\char`\"{}}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}{Duplicate\-Type} \{ \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730}{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}, 
\hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8a40c8a3eba568e04a5ce09ee0fa881822}{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M}
 \}
\begin{DoxyCompactList}\small\item\em Kind of ways of duplicating. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classmeow_1_1Self_a6b39fcc4b184809f9aeaeb1c9a0bac2d}{Self} ()
\begin{DoxyCompactList}\small\item\em constructor with a real entity \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1Self_af3220c1e1d7966c6dbaf4ec62f8cbc2f}{Self} (Data const \&d)
\begin{DoxyCompactList}\small\item\em connstructor with a real entity with it using its copy constructor \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1Self_afee797a10c73a1c8e02c8e6315a2930b}{Self} (\hyperlink{classmeow_1_1Self}{Self} const \&b, \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}{Duplicate\-Type} d)
\begin{DoxyCompactList}\small\item\em constructor with given another \hyperlink{classmeow_1_1Self}{Self} \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1Self_a000ede7e217c31401cc0a4b1c6749ee5}{Self} (\hyperlink{classmeow_1_1Self}{Self} const \&b)
\begin{DoxyCompactList}\small\item\em Disallow copy constructor. \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1Self_ada16564a03665b10810a6342d61044bc}{$\sim$\-Self} ()
\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
Data const $\ast$ \hyperlink{classmeow_1_1Self_a6063551c3e6ac647500e938ade8fbc99}{operator-\/$>$} () const 
\begin{DoxyCompactList}\small\item\em Return the constant pointer to the data. \end{DoxyCompactList}\item 
Data $\ast$ \hyperlink{classmeow_1_1Self_ace312355261c68ac7531767939f5c4c2}{operator-\/$>$} ()
\begin{DoxyCompactList}\small\item\em Return the non-\/constant pointer to the data (C\-O\-R's clone might occure here. \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1Self}{Self} \& \hyperlink{classmeow_1_1Self_a5962339e9ee49312ab770f1119256ca6}{operator()} () const 
\begin{DoxyCompactList}\small\item\em Return the non-\/constant reference of {\ttfamily $\ast$this}. \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1Self}{Self} const \& \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copy\-From} (\hyperlink{classmeow_1_1Self}{Self} const \&s)
\begin{DoxyCompactList}\small\item\em Copy the gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} to myself. \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1Self}{Self} const \& \hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{reference\-From} (\hyperlink{classmeow_1_1Self}{Self} const \&s)
\begin{DoxyCompactList}\small\item\em Reference myself from given {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object. \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1Self}{Self} const \& \hyperlink{classmeow_1_1Self_ae4256bfc598bb0db76141ffce506806e}{duplicate\-From} (\hyperlink{classmeow_1_1Self}{Self} const \&s, \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}{Duplicate\-Type} t)
\begin{DoxyCompactList}\small\item\em call {\ttfamily \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copy\-From()}} or {\ttfamily \hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{reference\-From()}} depend on your instruction \end{DoxyCompactList}\item 
bool \hyperlink{classmeow_1_1Self_ab3671e44693b79e2f987f59652d46ca9}{same} (\hyperlink{classmeow_1_1Self}{Self} const \&s) const 
\begin{DoxyCompactList}\small\item\em Compare tht if the gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object is reference from the same object of me. \end{DoxyCompactList}\item 
bool \hyperlink{classmeow_1_1Self_a91098e2218c358470e81d64f35d6491d}{equal} (\hyperlink{classmeow_1_1Self}{Self} const \&s) const 
\begin{DoxyCompactList}\small\item\em Compare that the data are the same. \end{DoxyCompactList}\item 
bool \hyperlink{classmeow_1_1Self_a10f22a83c3afcf65f8f9680f2a2f945c}{reference\-Less} (\hyperlink{classmeow_1_1Self}{Self} const \&s) const 
\begin{DoxyCompactList}\small\item\em Order compare by reference pointer. \end{DoxyCompactList}\item 
void \hyperlink{classmeow_1_1Self_af3277e1109c59e5f81549889b344a675}{operator=} (\hyperlink{classmeow_1_1Self}{Self} const \&a)
\begin{DoxyCompactList}\small\item\em Disallow default {\ttfamily 'operator='}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class Data$>$class meow\-::\-Self$<$ Data $>$}

A little class use for packing the data part of another class. With this technique, it can achieve Copy-\/\-On-\/\-Write(C\-O\-R) mechanism at background and have a reference mechanism which much more flexible then the one C++ has. 

Sample code\-: 
\begin{DoxyCode}
\textcolor{keyword}{class }A \{
\textcolor{keyword}{private}:
  \textcolor{keyword}{struct }Myself \{
    \textcolor{keywordtype}{int} data;

    Myself() \{                               \textcolor{comment}{// Necessary}
      data = 0;
    \}

    Myself(Myself \textcolor{keyword}{const}& b): data(b.data) \{  \textcolor{comment}{// Necessary, copy constructor}
    \}

    ~Myself() \{
    \}

    \textcolor{keywordtype}{bool} operator==(Myself \textcolor{keyword}{const}& b)\textcolor{keyword}{ const }\{ \textcolor{comment}{// Optional (this method will}
                                             \textcolor{comment}{// be called only if you use}
                                             \textcolor{comment}{// Self::equal() method)}
      \textcolor{keywordflow}{return} (data == b.data);
    \}
  \};

  Self<Myself> \textcolor{keyword}{const} \textcolor{keyword}{self};          \textcolor{comment}{// Here we use 'constant' data type in }
                                    \textcolor{comment}{// order to have a coutious coding style}
                                    \textcolor{comment}{// and allow the COR mechanism to clone}
                                    \textcolor{comment}{// data only when we really want to}
                                    \textcolor{comment}{// modify them.}
\textcolor{keyword}{public}:
  A(): self() \{ \}                            \textcolor{comment}{// Default constructor}

  A(A \textcolor{keyword}{const}& a): self(a.self, \hyperlink{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730}{COPY\_FROM}) \{ \} \textcolor{comment}{// Copy constructor. You must}
                                             \textcolor{comment}{// tell me which way of}
                                             \textcolor{comment}{// duplicating should I use.}
                                             \textcolor{comment}{// It strongly recommended you}
                                             \textcolor{comment}{// use COYP\_FROM for keeping the}
                                             \textcolor{comment}{// C++'s original behavior.}
  ~A() \{ \}

  \textcolor{keywordtype}{int} getMemember(\textcolor{keywordtype}{int} wh)\textcolor{keyword}{ const }\{
    \textcolor{keywordflow}{return} \textcolor{keyword}{self}->data;   \textcolor{comment}{// Use 'operator->()' to get the pointer of the data}
                         \textcolor{comment}{// The pointer is constant or not will depend on}
                         \textcolor{comment}{// whether the left side variable of '->' is}
                         \textcolor{comment}{// constant or not.}
                         \textcolor{comment}{// If we just want to read the data, use}
                         \textcolor{comment}{// 'self' instead of 'self()'}
  \}
  \textcolor{keywordtype}{void} setMemeber(\textcolor{keywordtype}{int} k) \{
    \textcolor{keyword}{self}()->data = k;    \textcolor{comment}{// As a result of 'self()' returning a non-constant}
                         \textcolor{comment}{// reference of itself, here we get the permission}
                         \textcolor{comment}{// for modiying data.}
                         \textcolor{comment}{// So now we can observe that if you type}
                         \textcolor{comment}{// 'Self<Myself> self' instead of the one above,}
                         \textcolor{comment}{// 'self' and 'self()' will become the same one and}
                         \textcolor{comment}{// both of them allow you using '->' for getting}
                         \textcolor{comment}{// writing permission. At the same time, the COR}
                         \textcolor{comment}{// machanism will become useless because everytime}
                         \textcolor{comment}{// you want to access the date, Self will copy the}
                         \textcolor{comment}{// data to prevent you to modify it no matter that}
                         \textcolor{comment}{// you might just want to read it.}
  \}

  A \hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{referenceFrom}(A \textcolor{keyword}{const}& a) \{
    \textcolor{keyword}{self}.\hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{referenceFrom}(a.self);
  \}

  A \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copyFrom}(A \textcolor{keyword}{const}& a) \{
    \textcolor{keyword}{self}.\hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copyFrom}(a.self);
  \}

  A& \hyperlink{classmeow_1_1Self_af3277e1109c59e5f81549889b344a675}{operator=}(A \textcolor{keyword}{const}& b) \{ \textcolor{comment}{// If you really like to use operator=, it}
                             \textcolor{comment}{// strongly recommended you use 'copyFrom()' for}
                             \textcolor{comment}{// keeping C++'s original behavior.}
    \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copyFrom}(b);
  \}
\};
\end{DoxyCode}
 Note that '\hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{reference\-From()}' will cause the two object become the same one, Which means that if you do something like '{\ttfamily a.\-reference\-From(b)}; {\ttfamily a.\-copy\-From(c)}; ', the result is that the value of {\ttfamily a},b,c will all the same one.

\begin{DoxyAuthor}{Author}
cathook
\end{DoxyAuthor}
\begin{DoxyWarning}{Warning}
This class disabled the method {\ttfamily operator=} and copy constructor in order to prevent upexplicit default behavior, so if you want to have one of them (or both), you must implement yourself 
\end{DoxyWarning}


Definition at line 104 of file Self.\-h.



\subsection{Member Enumeration Documentation}
\hypertarget{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}{\index{meow\-::\-Self@{meow\-::\-Self}!Duplicate\-Type@{Duplicate\-Type}}
\index{Duplicate\-Type@{Duplicate\-Type}!meow::Self@{meow\-::\-Self}}
\subsubsection[{Duplicate\-Type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ enum {\bf meow\-::\-Self\-::\-Duplicate\-Type}}}\label{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8}


Kind of ways of duplicating. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M@{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}!meow\-::\-Self@{meow\-::\-Self}}\index{meow\-::\-Self@{meow\-::\-Self}!C\-O\-P\-Y\-\_\-\-F\-R\-O\-M@{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}}\item[{\em 
\hypertarget{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730}{C\-O\-P\-Y\-\_\-\-F\-R\-O\-M}\label{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8adef1b0d02e1090b1b610a4ea91bd6730}
}]Normal copy operation. \index{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M@{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M}!meow\-::\-Self@{meow\-::\-Self}}\index{meow\-::\-Self@{meow\-::\-Self}!R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M@{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M}}\item[{\em 
\hypertarget{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8a40c8a3eba568e04a5ce09ee0fa881822}{R\-E\-F\-E\-R\-E\-N\-C\-E\-\_\-\-F\-R\-O\-M}\label{classmeow_1_1Self_aa7d169e9d20d590f3e571206084797f8a40c8a3eba568e04a5ce09ee0fa881822}
}]By reference, much like pointer's copy operation. \end{description}
\end{Desc}


Definition at line 109 of file Self.\-h.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{classmeow_1_1Self_a6b39fcc4b184809f9aeaeb1c9a0bac2d}{\index{meow\-::\-Self@{meow\-::\-Self}!Self@{Self}}
\index{Self@{Self}!meow::Self@{meow\-::\-Self}}
\subsubsection[{Self}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf meow\-::\-Self}$<$ Data $>$\-::{\bf Self} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a6b39fcc4b184809f9aeaeb1c9a0bac2d}


constructor with a real entity 



Definition at line 173 of file Self.\-h.

\hypertarget{classmeow_1_1Self_af3220c1e1d7966c6dbaf4ec62f8cbc2f}{\index{meow\-::\-Self@{meow\-::\-Self}!Self@{Self}}
\index{Self@{Self}!meow::Self@{meow\-::\-Self}}
\subsubsection[{Self}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf meow\-::\-Self}$<$ Data $>$\-::{\bf Self} (
\begin{DoxyParamCaption}
\item[{Data const \&}]{d}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_af3220c1e1d7966c6dbaf4ec62f8cbc2f}


connstructor with a real entity with it using its copy constructor 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em d} & Inital data \\
\hline
\end{DoxyParams}


Definition at line 181 of file Self.\-h.

\hypertarget{classmeow_1_1Self_afee797a10c73a1c8e02c8e6315a2930b}{\index{meow\-::\-Self@{meow\-::\-Self}!Self@{Self}}
\index{Self@{Self}!meow::Self@{meow\-::\-Self}}
\subsubsection[{Self}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf meow\-::\-Self}$<$ Data $>$\-::{\bf Self} (
\begin{DoxyParamCaption}
\item[{{\bf Self}$<$ Data $>$ const \&}]{b, }
\item[{{\bf Duplicate\-Type}}]{d}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_afee797a10c73a1c8e02c8e6315a2930b}


constructor with given another \hyperlink{classmeow_1_1Self}{Self} 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em b} & Another \hyperlink{classmeow_1_1Self}{Self} object. \\
\hline
\mbox{\tt in}  & {\em d} & To indicate type of way of duplicating \\
\hline
\end{DoxyParams}


Definition at line 190 of file Self.\-h.

\hypertarget{classmeow_1_1Self_a000ede7e217c31401cc0a4b1c6749ee5}{\index{meow\-::\-Self@{meow\-::\-Self}!Self@{Self}}
\index{Self@{Self}!meow::Self@{meow\-::\-Self}}
\subsubsection[{Self}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf meow\-::\-Self}$<$ Data $>$\-::{\bf Self} (
\begin{DoxyParamCaption}
\item[{{\bf Self}$<$ Data $>$ const \&}]{b}
\end{DoxyParamCaption}
)}}\label{classmeow_1_1Self_a000ede7e217c31401cc0a4b1c6749ee5}


Disallow copy constructor. 

\hypertarget{classmeow_1_1Self_ada16564a03665b10810a6342d61044bc}{\index{meow\-::\-Self@{meow\-::\-Self}!$\sim$\-Self@{$\sim$\-Self}}
\index{$\sim$\-Self@{$\sim$\-Self}!meow::Self@{meow\-::\-Self}}
\subsubsection[{$\sim$\-Self}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf meow\-::\-Self}$<$ Data $>$\-::$\sim${\bf Self} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_ada16564a03665b10810a6342d61044bc}


destructor 



Definition at line 206 of file Self.\-h.



\subsection{Member Function Documentation}
\hypertarget{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{\index{meow\-::\-Self@{meow\-::\-Self}!copy\-From@{copy\-From}}
\index{copy\-From@{copy\-From}!meow::Self@{meow\-::\-Self}}
\subsubsection[{copy\-From}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf Self} const\& {\bf meow\-::\-Self}$<$ Data $>$\-::copy\-From (
\begin{DoxyParamCaption}
\item[{{\bf Self}$<$ Data $>$ const \&}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}


Copy the gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} to myself. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em s} & gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
$\ast$this 
\end{DoxyReturn}


Definition at line 233 of file Self.\-h.

\hypertarget{classmeow_1_1Self_ae4256bfc598bb0db76141ffce506806e}{\index{meow\-::\-Self@{meow\-::\-Self}!duplicate\-From@{duplicate\-From}}
\index{duplicate\-From@{duplicate\-From}!meow::Self@{meow\-::\-Self}}
\subsubsection[{duplicate\-From}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf Self} const\& {\bf meow\-::\-Self}$<$ Data $>$\-::duplicate\-From (
\begin{DoxyParamCaption}
\item[{{\bf Self}$<$ Data $>$ const \&}]{s, }
\item[{{\bf Duplicate\-Type}}]{t}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_ae4256bfc598bb0db76141ffce506806e}


call {\ttfamily \hyperlink{classmeow_1_1Self_a9cd016a38a09f479fe2ed83eb1ebdae2}{copy\-From()}} or {\ttfamily \hyperlink{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{reference\-From()}} depend on your instruction 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em s} & gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object \\
\hline
\mbox{\tt in}  & {\em t} & instruction \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
$\ast$this 
\end{DoxyReturn}


Definition at line 262 of file Self.\-h.

\hypertarget{classmeow_1_1Self_a91098e2218c358470e81d64f35d6491d}{\index{meow\-::\-Self@{meow\-::\-Self}!equal@{equal}}
\index{equal@{equal}!meow::Self@{meow\-::\-Self}}
\subsubsection[{equal}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ bool {\bf meow\-::\-Self}$<$ Data $>$\-::equal (
\begin{DoxyParamCaption}
\item[{{\bf Self}$<$ Data $>$ const \&}]{s}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a91098e2218c358470e81d64f35d6491d}


Compare that the data are the same. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em s} & another {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if the data are same.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This will need the method 'Data\-::equal()' 
\end{DoxyNote}


Definition at line 289 of file Self.\-h.

\hypertarget{classmeow_1_1Self_a5962339e9ee49312ab770f1119256ca6}{\index{meow\-::\-Self@{meow\-::\-Self}!operator()@{operator()}}
\index{operator()@{operator()}!meow::Self@{meow\-::\-Self}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf Self}\& {\bf meow\-::\-Self}$<$ Data $>$\-::operator() (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a5962339e9ee49312ab770f1119256ca6}


Return the non-\/constant reference of {\ttfamily $\ast$this}. 



Definition at line 223 of file Self.\-h.

\hypertarget{classmeow_1_1Self_a6063551c3e6ac647500e938ade8fbc99}{\index{meow\-::\-Self@{meow\-::\-Self}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!meow::Self@{meow\-::\-Self}}
\subsubsection[{operator-\/$>$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ Data const$\ast$ {\bf meow\-::\-Self}$<$ Data $>$\-::operator-\/$>$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a6063551c3e6ac647500e938ade8fbc99}


Return the constant pointer to the data. 



Definition at line 211 of file Self.\-h.

\hypertarget{classmeow_1_1Self_ace312355261c68ac7531767939f5c4c2}{\index{meow\-::\-Self@{meow\-::\-Self}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!meow::Self@{meow\-::\-Self}}
\subsubsection[{operator-\/$>$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ Data$\ast$ {\bf meow\-::\-Self}$<$ Data $>$\-::operator-\/$>$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_ace312355261c68ac7531767939f5c4c2}


Return the non-\/constant pointer to the data (C\-O\-R's clone might occure here. 



Definition at line 218 of file Self.\-h.

\hypertarget{classmeow_1_1Self_af3277e1109c59e5f81549889b344a675}{\index{meow\-::\-Self@{meow\-::\-Self}!operator=@{operator=}}
\index{operator=@{operator=}!meow::Self@{meow\-::\-Self}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ void {\bf meow\-::\-Self}$<$ Data $>$\-::operator= (
\begin{DoxyParamCaption}
\item[{{\bf Self}$<$ Data $>$ const \&}]{a}
\end{DoxyParamCaption}
)}}\label{classmeow_1_1Self_af3277e1109c59e5f81549889b344a675}


Disallow default {\ttfamily 'operator='}. 

\hypertarget{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}{\index{meow\-::\-Self@{meow\-::\-Self}!reference\-From@{reference\-From}}
\index{reference\-From@{reference\-From}!meow::Self@{meow\-::\-Self}}
\subsubsection[{reference\-From}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ {\bf Self} const\& {\bf meow\-::\-Self}$<$ Data $>$\-::reference\-From (
\begin{DoxyParamCaption}
\item[{{\bf Self}$<$ Data $>$ const \&}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a63e1570c927c7fa3b95b71fe978e355d}


Reference myself from given {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em s} & given {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
$\ast$this 
\end{DoxyReturn}


Definition at line 246 of file Self.\-h.

\hypertarget{classmeow_1_1Self_a10f22a83c3afcf65f8f9680f2a2f945c}{\index{meow\-::\-Self@{meow\-::\-Self}!reference\-Less@{reference\-Less}}
\index{reference\-Less@{reference\-Less}!meow::Self@{meow\-::\-Self}}
\subsubsection[{reference\-Less}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ bool {\bf meow\-::\-Self}$<$ Data $>$\-::reference\-Less (
\begin{DoxyParamCaption}
\item[{{\bf Self}$<$ Data $>$ const \&}]{s}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_a10f22a83c3afcf65f8f9680f2a2f945c}


Order compare by reference pointer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em s} & another {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object \\
\hline
\end{DoxyParams}


Definition at line 299 of file Self.\-h.

\hypertarget{classmeow_1_1Self_ab3671e44693b79e2f987f59652d46ca9}{\index{meow\-::\-Self@{meow\-::\-Self}!same@{same}}
\index{same@{same}!meow::Self@{meow\-::\-Self}}
\subsubsection[{same}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Data$>$ bool {\bf meow\-::\-Self}$<$ Data $>$\-::same (
\begin{DoxyParamCaption}
\item[{{\bf Self}$<$ Data $>$ const \&}]{s}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Self_ab3671e44693b79e2f987f59652d46ca9}


Compare tht if the gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object is reference from the same object of me. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em s} & gived {\ttfamily \hyperlink{classmeow_1_1Self}{Self}} object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if we are referenced to the same object. 
\end{DoxyReturn}


Definition at line 277 of file Self.\-h.



The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
meowpp/\hyperlink{Self_8h}{Self.\-h}\end{DoxyCompactItemize}