のドキュメントに対しては、リンクの替わりに ページ番号への参照が出力されます。さらには、 ドキュメントの末尾にある索引を利用することで、メンバー、クラス、名前空間、 あるいはファイルをすばやく見つけることができます。 man ページに対しては、参照情報は何も生成されません。
以下のセクションでは、ソースファイルの中の ドキュメント付けられた様々なエンティティへのリンクがどのように生成されるかを 示しています。
Doxygen は、ドキュメント内で発見した URL やメールアドレスを、 自動的にリンクで置換します。
ドキュメント内の単語で、ドキュメント付けされたクラスに対応するものはすべて、 そのクラスのドキュメントを格納するページへのリンクで自動的に置換されます。 そのようを置換を抑制したい単語があれば、その単語の前に % を置きます。
末尾以外のところにドット (.) を含むような単語は、 すべてファイル名とみなされます。 その単語が本当にドキュメント付けされた入力ファイルの名前であれば、 そのファイルのドキュメントへのリンクが自動的に生成されます。
関数へのリンクは、以下のパターンのうちの1つに遭遇した場合に生成されます:
<関数名> "(" <引数リスト> ")" <関数名> "()" "::" <関数名> (<クラス名> "::")n <関数名> "(" <引数リスト> ")" (<クラス名> "::")n <関数名> "()" (<クラス名> "::")n <関数名> n > 0。:: のかわりに # が使われていても構いません。 foo というメンバーを持つクラスのドキュメントでは、 :: foo を使うとグローバル変数への参照になりますが、 一方、#foo はメンバーへのリンクになります。関数がオーバーロードされていて引数リストが指定されていない (すなわち、パターン2 または 5) 場合は、 オーバーロードされているメンバーのうちの一つのドキュメントに対して リンクが生成されます。
メンバー関数に対しては、以下の条件を満たせば、 クラススコープ (パターン 4 〜 6) は省略できます。
これらのエンティティはすべて、直前のセクションで記述したのと同じやり方で リンクできます。明確にするために、このケースではパターン 3 と 6 だけが 使われると言っておきましょう。
/*! \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.
*/
typedef struct StructName TypeName
/*! \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)
{
}
1.2.11.1 の開発者: Dimitri van Heesch,
© 1997-2001