|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21571/root/usr/share/doc/doxygen-1.4.7/html/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Doxygen manual: Automatic link generation</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<h1><a class="anchor" name="autolink">Automatic link generation</a></h1>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>
The next sections show how to generate links to the various documented entities in a source file.<h2><a class="anchor" name="linkurl">
Links to web pages and mail addresses</a></h2>
Doxygen will automatically replace any URLs and mail addresses found in the documentation by links (in HTML).<h2><a class="anchor" name="linkclass">
Links to classes.</a></h2>
All words in the documentation that correspond to a documented class 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.<h2><a class="anchor" name="linkfile">
Links to files.</a></h2>
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.<h2><a class="anchor" name="linkfunc">
Links to functions.</a></h2>
Links to functions are created if one of the following patterns is encountered: <ol>
<li>
<code><functionName>"("<argument-list>")"</code> </li>
<li>
<code><functionName>"()"</code> </li>
<li>
<code>"::"<functionName></code> </li>
<li>
<code>(<className>"::")<sup>n</sup><functionName>"("<argument-list>")"</code> </li>
<li>
<code>(<className>"::")<sup>n</sup><functionName>"()"</code> </li>
<li>
<code>(<className>"::")<sup>n</sup><functionName></code> </li>
</ol>
where n>0.<p>
<dl compact><dt><b>Note 1: </b></dt><dd>The patterns above should not contain spaces, tabs or newlines. </dd></dl>
<dl compact><dt><b>Note 2: </b></dt><dd>For JavaDoc compatibility a # may be used instead of a :: in the patterns above. </dd></dl>
<dl compact><dt><b>Note 3:</b></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>
For non overloaded members the argument list may be omitted.<p>
If a function is overloaded and no matching argument list is specified (i.e. pattern 2 or 5 is used), a link will be created to the documentation of one of the overloaded members.<p>
For member functions the class scope (as used in patterns 4 to 6) may be omitted, if: <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>
<h2><a class="anchor" name="linkother">
Links to variables, typedefs, enum types, enum values and defines.</a></h2>
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 6 in this case.<p>
<dl compact><dt><b>Example:</b></dt><dd><div class="fragment"><pre class="fragment">/*! \file autolink.cpp
Testing automatic link generation.
A link to a member of the Test class: Test::member,
More specific links to the each of the overloaded members:
Test::member(int) and Test#member(int,int)
A link to a protected member variable of Test: Test#var,
A link to the global enumeration type #GlobEnum.
A link to the define #ABS(x).
A link to the destructor of the Test class: Test::~Test,
A link to the typedef ::B.
A link to the enumeration type Test::EType
A link to some enumeration values Test::Val1 and ::GVal2
*/
/*!
Since this documentation block belongs to the class Test no link to
Test is generated.
Two ways to link to a constructor are: #Test and Test().
Links to the destructor are: #~Test and ~Test().
A link to a member in this class: member().
More specific links to the each of the overloaded members:
member(int) and member(int,int).
A link to the variable #var.
A link to the global typedef ::B.
A link to the global enumeration type #GlobEnum.
A link to the define ABS(x).
A link to a variable \link #var using another text\endlink as a link.
A link to the enumeration type #EType.
A link to some enumeration values: \link Test::Val1 Val1 \endlink and ::GVal1.
And last but not least a link to a file: autolink.cpp.
\sa Inside a see also section any word is checked, so EType,
Val1, GVal1, ~Test and member will be replaced by links in HTML.
*/
class Test
{
public:
Test(); //!< constructor
~Test(); //!< destructor
void member(int); /**< A member function. Details. */
void member(int,int); /**< An overloaded member function. Details */
/** An enum type. More details */
enum EType {
Val1, /**< enum value 1 */
Val2 /**< enum value 2 */
};
protected:
int var; /**< A member variable */
};
/*! details. */
Test::Test() { }
/*! details. */
Test::~Test() { }
/*! A global variable. */
int globVar;
/*! A global enum. */
enum GlobEnum {
GVal1, /*!< global enum value 1 */
GVal2 /*!< global enum value 2 */
};
/*!
* A macro definition.
*/
#define ABS(x) (((x)>0)?(x):-(x))
typedef Test B;
/*! \fn typedef Test B
* A type definition.
*/
</pre></div>
Click <a href="../examples/autolink/html/index.html">here</a>
for the corresponding HTML documentation that is generated by Doxygen.
</dd></dl>
<h2><a class="anchor" name="resolving">
typedefs.</a></h2>
Typedefs that involve classes, structs and unions, like <div class="fragment"><pre class="fragment">typedef struct StructName TypeName
</pre></div> create an alias for StructName, so links will be generated to StructName, when either StructName itself or TypeName is encountered.<p>
<dl compact><dt><b>Example:</b></dt><dd><div class="fragment"><pre class="fragment">/*! \file restypedef.cpp
* An example of resolving typedefs.
*/
/*! \struct CoordStruct
* A coordinate pair.
*/
struct CoordStruct
{
/*! The x coordinate */
float x;
/*! The y coordinate */
float y;
};
/*! Creates a type name for CoordStruct */
typedef CoordStruct Coord;
/*!
* This function returns the addition of \a c1 and \a c2, i.e:
* (c1.x+c2.x,c1.y+c2.y)
*/
Coord add(Coord c1,Coord c2)
{
}
</pre></div>
Click <a href="../examples/restypedef/html/restypedef_8cpp.html">here</a>
for the corresponding HTML documentation that is generated by Doxygen.
</dd></dl>
<hr size="1"><address style="align: right;"><small>Generated on 11 Jun 2012 for Doxygen manual by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>