<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Loki: Visitor</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.8 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <form action="search.php" method="get"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td><label> <u>S</u>earch for </label></td> <td><input type="text" name="query" value="" size="20" accesskey="s"/></td> </tr> </table> </form> </li> </ul> </div> </div> <div class="contents"> <h1>Visitor</h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">Loki::BaseVisitor</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00142.html">Visitor</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html">Loki::CyclicVisitor< R, TList ></a></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#g2b6ed280714eca44a2713d3cee5b2093">LOKI_DEFINE_VISITABLE</a>()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#g0d60fea385397a82b9d3b3d231517777">LOKI_DEFINE_CONST_VISITABLE</a>()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#gb976a68573455c07def553bdc34203f7">LOKI_DEFINE_CYCLIC_VISITABLE</a>(SomeVisitor)</td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="g0d60fea385397a82b9d3b3d231517777"></a><!-- doxytag: member="Visitor.h::LOKI_DEFINE_CONST_VISITABLE" ref="g0d60fea385397a82b9d3b3d231517777" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LOKI_DEFINE_CONST_VISITABLE </td> <td>(</td> </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">virtual</span> ReturnType Accept(::<a class="code" href="a00012.html">Loki::BaseVisitor</a>& guest) <span class="keyword">const</span> \ { <span class="keywordflow">return</span> AcceptImpl(*<span class="keyword">this</span>, guest); } </pre></div>Put it in every class that you want to make visitable by const member functions (in addition to deriving it from BaseVisitable<R>) </div> </div><p> <a class="anchor" name="gb976a68573455c07def553bdc34203f7"></a><!-- doxytag: member="Visitor.h::LOKI_DEFINE_CYCLIC_VISITABLE" ref="gb976a68573455c07def553bdc34203f7" args="(SomeVisitor)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LOKI_DEFINE_CYCLIC_VISITABLE </td> <td>(</td> <td class="paramtype">SomeVisitor </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">virtual</span> SomeVisitor::ReturnType Accept(SomeVisitor& guest) \ { <span class="keywordflow">return</span> guest.GenericVisit(*<span class="keyword">this</span>); } </pre></div>Put it in every class that you want to make visitable by a cyclic visitor </div> </div><p> <a class="anchor" name="g2b6ed280714eca44a2713d3cee5b2093"></a><!-- doxytag: member="Visitor.h::LOKI_DEFINE_VISITABLE" ref="g2b6ed280714eca44a2713d3cee5b2093" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LOKI_DEFINE_VISITABLE </td> <td>(</td> </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">virtual</span> ReturnType Accept(::<a class="code" href="a00012.html">Loki::BaseVisitor</a>& guest) \ { <span class="keywordflow">return</span> AcceptImpl(*<span class="keyword">this</span>, guest); } </pre></div>Put it in every class that you want to make visitable (in addition to deriving it from BaseVisitable<R>) </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Thu Jan 29 18:51:41 2009 for Loki by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address> </body> </html>