summaryrefslogtreecommitdiffstats
path: root/VES5.0/doxygen-1.8.12/html/autolink.html
blob: 101cb3f9a75b655f2bdc251559709143f2e8f7b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!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.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: Automatic link generation</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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen_manual.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="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
</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('autolink.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">Automatic link generation </div>  </div>
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#linkurl">Links to web pages and mail addresses</a></li>
<li class="level1"><a href="#linkclass">Links to classes</a></li>
<li class="level1"><a href="#linkfile">Links to files</a></li>
<li class="level1"><a href="#linkfunc">Links to functions</a></li>
<li class="level1"><a href="#linkother">Links to other members</a></li>
<li class="level1"><a href="#resolving">typedefs</a></li>
</ul>
</div>
<div class="textblock"><p>Most documentation systems have special `see also' sections where links to other pieces of documentation can be inserted. Although doxygen also has a command to start such a section (See section <a class="el" href="commands.html#cmdsa">\sa</a>), it does allow you to put these kind of links anywhere in the documentation. For <img class="formulaInl" alt="$\mbox{\LaTeX}$" src="form_0.png"/> documentation a reference to the page number is written instead of a link. Furthermore, the index at the end of the document can be used to quickly find the documentation of a member, class, namespace or file. For man pages no reference information is generated.</p>
<p>The next sections show how to generate links to the various documented entities in a source file.</p>
<h1><a class="anchor" id="linkurl"></a>
Links to web pages and mail addresses</h1>
<p>Doxygen will automatically replace any URLs and mail addresses found in the documentation by links (in HTML). To manually specify link text, use the HTML '<code>a</code>' tag: </p><pre class="fragment">&lt;a href="linkURL"&gt;link text&lt;/a&gt; </pre><p> which will be automatically translated to other output formats by doxygen.</p>
<h1><a class="anchor" id="linkclass"></a>
Links to classes</h1>
<p>All words in the documentation that correspond to a documented class and contain at least one non-lower case character will automatically be replaced by a link to the page containing the documentation of the class. If you want to prevent that a word that corresponds to a documented class is replaced by a link you should put a % in front of the word. To link to an all lower case symbol, use <a class="el" href="commands.html#cmdref">\ref</a>.</p>
<h1><a class="anchor" id="linkfile"></a>
Links to files</h1>
<p>All words that contain a dot (<code>.</code>) that is not the last character in the word are considered to be file names. If the word is indeed the name of a documented input file, a link will automatically be created to the documentation of that file.</p>
<h1><a class="anchor" id="linkfunc"></a>
Links to functions</h1>
<p>Links to functions are created if one of the following patterns is encountered: </p><ol>
<li>
<code>&lt;functionName&gt;"("&lt;argument-list&gt;")"</code> </li>
<li>
<code>&lt;functionName&gt;"()"</code> </li>
<li>
<code>"::"&lt;functionName&gt;</code> </li>
<li>
<code>(&lt;className&gt;"::")<sup>n</sup>&lt;functionName&gt;"("&lt;argument-list&gt;")"</code> </li>
<li>
<code>(&lt;className&gt;"::")<sup>n</sup>&lt;functionName&gt;"("&lt;argument-list&gt;")"&lt;modifiers&gt;</code> </li>
<li>
<code>(&lt;className&gt;"::")<sup>n</sup>&lt;functionName&gt;"()"</code> </li>
<li>
<code>(&lt;className&gt;"::")<sup>n</sup>&lt;functionName&gt;</code> </li>
</ol>
<p>where n&gt;0.</p>
<dl class="section user"><dt>Note 1: </dt><dd>Function arguments should be specified with correct types, i.e. 'fun(const std::string&amp;,bool)' or '()' to match any prototype. </dd></dl>
<dl class="section user"><dt>Note 2:</dt><dd>Member function modifiers (like 'const' and 'volatile') are required to identify the target, i.e. 'func(int) const' and 'func(int)' target different member functions. </dd></dl>
<dl class="section user"><dt>Note 3: </dt><dd>For JavaDoc compatibility a # may be used instead of a :: in the patterns above. </dd></dl>
<dl class="section user"><dt>Note 4:</dt><dd>In the documentation of a class containing a member foo, a reference to a global variable is made using "::foo", whereas #foo will link to the member.</dd></dl>
<p>For non overloaded members the argument list may be omitted.</p>
<p>If a function is overloaded and no matching argument list is specified (i.e. pattern 2 or 6 is used), a link will be created to the documentation of one of the overloaded members.</p>
<p>For member functions the class scope (as used in patterns 4 to 7) may be omitted, if: </p><ol>
<li>
The pattern points to a documented member that belongs to the same class as the documentation block that contains the pattern. </li>
<li>
The class that corresponds to the documentation blocks that contains the pattern has a base class that contains a documented member that matches the pattern. </li>
</ol>
<h1><a class="anchor" id="linkother"></a>
Links to other members</h1>
<p>All of these entities can be linked to in the same way as described in the previous section. For sake of clarity it is advised to only use patterns 3 and 7 in this case.</p>
<dl class="section user"><dt>Example:</dt><dd><div class="fragment"><div class="line"><span class="comment">/*! \file autolink.cpp</span></div><div class="line"><span class="comment">  Testing automatic link generation.</span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  A link to a member of the Autolink_Test class: Autolink_Test::member, </span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  More specific links to the each of the overloaded members:</span></div><div class="line"><span class="comment">  Autolink_Test::member(int) and Autolink_Test#member(int,int)</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">  A link to a protected member variable of Autolink_Test: Autolink_Test#var, </span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">  A link to the global enumeration type #GlobEnum.</span></div><div class="line"><span class="comment"> </span></div><div class="line"><span class="comment">  A link to the define #ABS(x).</span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  A link to the destructor of the Autolink_Test class: Autolink_Test::~Autolink_Test, </span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  A link to the typedef ::B.</span></div><div class="line"><span class="comment"> </span></div><div class="line"><span class="comment">  A link to the enumeration type Autolink_Test::EType</span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  A link to some enumeration values Autolink_Test::Val1 and ::GVal2</span></div><div class="line"><span class="comment">*/</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*!</span></div><div class="line"><span class="comment">  Since this documentation block belongs to the class Autolink_Test no link to </span></div><div class="line"><span class="comment">  Autolink_Test is generated.</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">  Two ways to link to a constructor are: #Autolink_Test and Autolink_Test().</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">  Links to the destructor are: #~Autolink_Test and ~Autolink_Test().</span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  A link to a member in this class: member().</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">  More specific links to the each of the overloaded members: </span></div><div class="line"><span class="comment">  member(int) and member(int,int). </span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  A link to the variable #var.</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">  A link to the global typedef ::B.</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">  A link to the global enumeration type #GlobEnum.</span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  A link to the define ABS(x).</span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  A link to a variable \link #var using another text\endlink as a link.</span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  A link to the enumeration type #EType.</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">  A link to some enumeration values: \link Autolink_Test::Val1 Val1 \endlink and ::GVal1.</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">  And last but not least a link to a file: autolink.cpp.</span></div><div class="line"><span class="comment">  </span></div><div class="line"><span class="comment">  \sa Inside a see also section any word is checked, so EType, </span></div><div class="line"><span class="comment">      Val1, GVal1, ~Autolink_Test and member will be replaced by links in HTML.</span></div><div class="line"><span class="comment">*/</span></div><div class="line"></div><div class="line"><span class="keyword">class </span>Autolink_Test</div><div class="line">{</div><div class="line">  <span class="keyword">public</span>:</div><div class="line">    Autolink_Test();               <span class="comment">//!&lt; constructor </span></div><div class="line"><span class="comment"></span>   ~Autolink_Test();               <span class="comment">//!&lt; destructor </span></div><div class="line"><span class="comment"></span>    <span class="keywordtype">void</span> member(<span class="keywordtype">int</span>);     <span class="comment">/**&lt; A member function. Details. */</span></div><div class="line">    <span class="keywordtype">void</span> member(<span class="keywordtype">int</span>,<span class="keywordtype">int</span>); <span class="comment">/**&lt; An overloaded member function. Details */</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">    /** An enum type. More details */</span></div><div class="line">    <span class="keyword">enum</span> EType { </div><div class="line">      Val1,               <span class="comment">/**&lt; enum value 1 */</span> </div><div class="line">      Val2                <span class="comment">/**&lt; enum value 2 */</span> </div><div class="line">    };                </div><div class="line"></div><div class="line">  <span class="keyword">protected</span>:</div><div class="line">    <span class="keywordtype">int</span> var;              <span class="comment">/**&lt; A member variable */</span></div><div class="line">};</div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*! details. */</span></div><div class="line">Autolink_Test::Autolink_Test() { }</div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*! details. */</span></div><div class="line">Autolink_Test::~Autolink_Test() { }</div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*! A global variable. */</span></div><div class="line"><span class="keywordtype">int</span> globVar;</div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*! A global enum. */</span></div><div class="line"><span class="keyword">enum</span> GlobEnum { </div><div class="line">                GVal1,    <span class="comment">/*!&lt; global enum value 1 */</span> </div><div class="line">                GVal2     <span class="comment">/*!&lt; global enum value 2 */</span> </div><div class="line">              };</div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*!</span></div><div class="line"><span class="comment"> *  A macro definition.</span></div><div class="line"><span class="comment"> */</span> </div><div class="line"><span class="preprocessor">#define ABS(x) (((x)&gt;0)?(x):-(x))</span></div><div class="line"></div><div class="line"><span class="keyword">typedef</span> Autolink_Test B;</div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*! \fn typedef Autolink_Test B</span></div><div class="line"><span class="comment"> *  A type definition. </span></div><div class="line"><span class="comment"> */</span></div></div><!-- fragment -->  
  Click <a href="examples/autolink/html/index.html">here</a> 
  for the corresponding HTML documentation that is generated by doxygen.
   </dd></dl>
<h1><a class="anchor" id="resolving"></a>
typedefs</h1>
<p>Typedefs that involve classes, structs and unions, like </p><pre class="fragment">typedef struct StructName TypeName
</pre><p> create an alias for StructName, so links will be generated to StructName, when either StructName itself or TypeName is encountered.</p>
<dl class="section user"><dt>Example:</dt><dd><div class="fragment"><div class="line"><span class="comment">/*! \file restypedef.cpp</span></div><div class="line"><span class="comment"> * An example of resolving typedefs.</span></div><div class="line"><span class="comment"> */</span></div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*! \struct CoordStruct</span></div><div class="line"><span class="comment"> * A coordinate pair.</span></div><div class="line"><span class="comment"> */</span></div><div class="line"><span class="keyword">struct </span>CoordStruct</div><div class="line">{<span class="comment"></span></div><div class="line"><span class="comment">  /*! The x coordinate */</span></div><div class="line">  <span class="keywordtype">float</span> x;<span class="comment"></span></div><div class="line"><span class="comment">  /*! The y coordinate */</span></div><div class="line">  <span class="keywordtype">float</span> y;</div><div class="line">};</div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*! Creates a type name for CoordStruct */</span> </div><div class="line"><span class="keyword">typedef</span> CoordStruct Coord;</div><div class="line"><span class="comment"></span></div><div class="line"><span class="comment">/*! </span></div><div class="line"><span class="comment"> * This function returns the addition of \a c1 and \a c2, i.e:</span></div><div class="line"><span class="comment"> * (c1.x+c2.x,c1.y+c2.y)</span></div><div class="line"><span class="comment"> */</span></div><div class="line">Coord add(Coord c1,Coord c2)</div><div class="line">{</div><div class="line">}</div></div><!-- fragment -->  
  Click <a href="examples/restypedef/html/restypedef_8cpp.html">here</a> 
  for the corresponding HTML documentation that is generated by doxygen.
   </dd></dl>
<p> 
Go to the <a href="output.html">next</a> section or return to the
 <a href="index.html">index</a>.
 </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>