専用コマンド

ドキュメント内のすべてのコマンドは、バックスラッシュ (\)、 または、アットマーク (@) で始まります。 お好みであれば、以下のバックスラッシュで始まるすべてのコマンドを、 それに対応したアットマークで始まるものに置き換えることができます。

いくつかのコマンドは、1つまたはそれ以上の引数を取ります。 各引数には、ある決まった範囲があります:

[四角] カッコが使われている場合、引数はオプションとなります。

以下は、全コマンドをアルファベット順にソートしたリストです (説明への参照付き):

以下のサブセクションでは、doxygen が認識する全コマンドのリストが提供されます。 認識されないコマンドは、通常のテキストとして扱われます。

--- 構造指示子 (Structural indicators) ---

\addtogroup <名前> [(タイトル)]

\defgroup と同様、グループを定義しますが、 そのコマンドとは対照的に、同じ <名前> を2回以上使用しても警告は発せられず、 マージされたドキュメントとコマンドの引数として最初に見つかったタイトルを持つ 1つのグループが作成されます。

タイトルはオプションです。そこで、このコマンドを使うと、 以下のように @{ と @} を用いて、 既存のグループにいくつかの実体を追加することもできます。

  /*! \addtogroup mygrp
   *  Additional documentation for group `mygrp'
   *  @{
   */

  /*!
   *  A function 
   */
  void func1()
  {
  }

  /*! Another function */
  void func2()
  {
  }

  /*! @} */

参照:
ページ グループ化、セクション \defgroup\ingroup および \weakgroup

\class <名前> [<ヘッダーファイル>] [<ヘッダー名>]

コメントブロックが、 <名前> というクラスに対するドキュメントを保持していることを指示します。 オプション引数として、ヘッダーファイルとヘッダー名を指定することができます。 ヘッダーファイルが指定されると、その字句通りのコピーへのリンクが HTML ドキュメントに埋め込まれます。 <ヘッダー名> 引数を使用すれば、クラスのドキュメントで用いられているリンクの名前を、 <ヘッダーファイル> 以外のもので上書きすることができます。 これは、インクルード名が、(<X11/X.h> のように) デフォルトのインクルードパス上に 位置していないような場合に役立ちます。 <ヘッダー名> 引数を用いて、インクルード文がどのように見えるべきか、 ということを指定することもできます。 そうするには、名前の囲りにクォートまたは三角カッコを付加します。 三角カッコは、名前だけが与えられた場合に用いられます。

例:
/* A dummy class */

class Test
{
}

/*! \class Test class.h "inc/class.h"
 *  \brief This is a test class.
 *
 * Some details about the Test class
 */

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\def <名前>

コメントブロックが、#define マクロに対するドキュメントを保持していることを指示します。

例:
/*! \file define.h
    \brief testing defines
    
    This is to test the documentation of defines.
*/

/*!
  \def MAX(x,y)
  Computes the maximum of \a x and \a y.
*/

/*! 
   Computes the absolute value of its argument \a x.
*/
#define ABS(x) (((x)>0)?(x):-(x))
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)>(y)?(y):(x)) /*!< Computes the minimum of \a x and \a y. */

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\defgroup <名前> (グループタイトル)

コメントブロックが、クラス、ファイル、または名前空間の グループ に対するドキュメントを保持していることを指示します。 これを使うと、クラス、ファイル、または名前空間をいくつかのカテゴリに分類した上で、 それらのカテゴリにドキュメント付けをすることができます。 また、グループは、他のグループのメンバーとしても使うことができるので、 グループの階層を構築することができます。

<名前> 引数は、単一語の識別子でなければなりません。

参照:
ページ グループ化、セクション \ingroup\addtogroup\weakgroup

\enum <名前>

コメントブロックが、 <名前> という列挙型データに対するドキュメントを保持していることを指示します。 列挙型データがあるクラスのメンバーでありながら、 そのドキュメントブロックがクラス定義の外側に位置しているような場合は、 クラスのスコープもまた、指定されなければなりません。 コメントブロックが列挙型データ宣言の直前に置かれている場合は、 \enum コメントを省略しても構いません。

注:
名前のない列挙型データの型はドキュメント付けをすることができません。 しかし、名前のない列挙型データの値にはドキュメント付けをすることができます。
例:
class Test
{
  public:
    enum TEnum { Val1, Val2 };
};

/*! \class Test
 * The class description.
 */

/*! \enum Test::TEnum
 * A description of the enum type.
 */

/*! \var Test::TEnum Test::Val1
 * The description of the first enum value.
 */

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\example <ファイル名>

コメントブロックが、ソースコード例に対するドキュメントを保持していることを指示します。 ソースファイルの名前は <ファイル名> です。 このファイル内のテキストが、 コメントブロックの保持しているドキュメントの直後に取り込まれます。 すべての例を並べたリストが作られます。 ドキュメント付けがなされているメンバーやクラスを参照しているかどうか、 ソースコードが調べられます。 見つかったものがあれば、その名前は、ドキュメントとクロスリファレンスで結ばれます。 doxygen の設定ファイルの EXAMPLE_PATH タグを用いると、 複数のソースファイルまたはディレクトリを指定することができます。

EXAMPLE_PATH タグによって指定された例ファイルの集合に対して、 <ファイル名> だけでは一意にファイルを決定できない場合、 それを解消するために、絶対パスの一部を含めることができます。

例として、2つ以上のソースファイルが必要な場合は、 \include コマンドを使用することができます。

例:
/** A Test class.
 *  More details about this class.
 */

class Test
{
  public:
    /** An example member function.
     *  More details about this function.
     */
    void example();
};

void Test::example() {}

/** \example example_test.cpp
 * This is an example of how to use the Test class.
 * More details about this example.
 */

ここで、実例ファイル example_test.cpp の内容は、以下のようなものです:
void main()
{
  Test t;
  t.example();
}

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。
参照:
セクション \include

\file [<名前>]

コメントブロックが、 <名前> というソースファイルまたはヘッダーファイルに対する ドキュメントを保持していることを指示します。 ファイル名は、それだけでは一意にならない場合、パス (の一部) を含んでも構いません。 ファイル名が省略された場合 (つまり、その行の \file 以降が空白の場合) は、 \file コマンドを含むドキュメントブロックは、 それが置かれているファイルに属することになります。

重要:
グローバルな関数、変数、typedef および enum は、 それらを記述しているファイルもまたドキュメント付けがなされていた場合、 そのファイルのドキュメント出力にのみ、含まれます。
例:
/** \file file.h
 * A brief file description.
 * A more elaborated file description.
 */

/**
 * A global integer value.
 * More details about this value.
 */
extern int globalValue;

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\fn (関数宣言)

コメントブロックが、 (グローバルか、クラスのメンバーか、どちらかの) 関数に対するドキュメントを保持していることを指示します。 このコマンドは、 コメントブロックが関数宣言または関数定義の前に置かれていない場合に 必要となります。 もし、コメントブロックが関数宣言/定義の前に置かれているのであれば、 このコマンドは省略できます (冗長性を避けるためにもそうすべきです)。

\fn コマンドの後には、完全な関数宣言を指定する必要があります。 引数は、行末で終わります。

例:
class Test
{
  public:
    const char *member(char,int) throw(std::out_of_range);
};

const char *Test::member(char c,int n) throw(std::out_of_range) {}

/*! \class Test
 * \brief Test class.
 *
 * Details about Test.
 */

/*! \fn const char *Test::member(char c,int n) 
 *  \brief A member function.
 *  \param c a character.
 *  \param n an integer.
 *  \exception std::out_of_range parameter is out of range.
 *  \return a character pointer.
 */

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。
参照:
セクション \var および \typedef

\hideinitializer

デフォルトでは、define の値および変数の初期化子は、 30行を超えないかぎり、表示されます。 define または変数のコメントブロックの中でこのコマンドを使うと、 初期化子は常に非表示になります。

参照:
セクション \showinitializer

\ingroup (<グループ名> [<グループ名> <グループ名>])

\ingroup コマンドが、 クラス、関数または名前空間のコメントブロックで使われている場合、 それ (クラス、関数または名前空間) は、 <グループ名> で識別されるグループ (または複数グループ) に追加されます。

参照:
ページ グループ化、セクション \defgroup, \addtogroup\weakgroup

\interface <名前>

コメントブロックが、 <名前> というインタフェースに対するドキュメントを保持していることを指示します。 引数は、\class コマンドのものと同じです。

参照:
セクション \class

\internal

このコマンドは、「内部使用のみ」というメッセージを出力します。 \internal コマンドの後にあるすべてのテキストは無視されます。


\mainpage [(タイトル)]

\mainpage コマンドがコメントブロック内に置かれた場合、 そのブロックは、インデックスページ (HTML) または、 最初の章 ( ) をカスタマイズするのに使われます。

タイトル引数が指定されると、 doxygen が生成するデフォルトのタイトルをそれで置換します。

以下に例を挙げます:

/*! \mainpage My Personal Index Page
 *
 * \section intro Introduction
 *
 * This is the introduction.
 *
 * \section install Installation
 *
 * \subsection step1 Step 1: Opening the box
 *  
 * etc...
 */

\ref index によってメインページを参照することができます。

参照:
セクション \section、 セクション \subsection、 セクション \page

\name (ヘッダー)

このコマンドは、コメントブロックを、あるメンバーグループのヘッダー定義に変換します。 コメントブロックの後には、グループのメンバーを含む、 //@{ ... //@} ブロックが続かなければなりません。

例については、セクション メンバーグループ を参照。


\namespace <名前>

コメントブロックが、 <名前> という名前空間に対するドキュメントを保持していることを指示します。


\nosubgrouping

このコマンドは、クラスのドキュメント内に置くことができます。 これがメンバーグループ化とともに使用されると、 doxygen は、Public/Protected/Private/... セクションのサブグループとして メンバーグループを作る必要がなくなります。


\overload [(関数宣言)]

このコマンドを使うと、 オーバーロードされたメンバー関数に対して、 以下のような標準的なテキストが生成されます:

`This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.'

オーバーロードされたメンバー関数に対するドキュメントが、 関数宣言または関数定義の前に置かれていない場合は、 オプションの引数で、正しく関数指定をする必要があります。

ドキュメントブロック内部にある他のすべてのドキュメントは、 生成されたメッセージの後に追加されます。

注 1:
これによってオーバーロードされるメンバー関数が、 より前のほうでドキュメントに現れるようにすることは、 ユーザの責任です。 このケースで、ドキュメント化の順序の入れ替えを防ぐには、 SORT_MEMBER_DOCSNO を設定します。
注 2:
\overload コマンドは、一行コメント内では機能しません。
例:
class Test 
{
  public:
    void drawRect(int,int,int,int);
    void drawRect(const Rect &r);
};

void Test::drawRect(int x,int y,int w,int h) {}
void Test::drawRect(const Rect &r) {}

/*! \class Test
 *  \brief A short description.
 *   
 *  More text.
 */

/*! \fn void Test::drawRect(int x,int y,int w,int h)
 * This command draws a rectangle with a left upper corner at ( \a x , \a y ),
 * width \a w and height \a h. 
 */

/*!
 * \overload void Test::drawRect(const Rect &r)
 */


ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\package <名前>

コメントブロックが、 <名前> という Java パッケージに対するドキュメントを保持していることを指示します。


\page <名前> (タイトル)

コメントブロックが、 特定のクラスやファイル、メンバーに直接には関連付けられていない ドキュメントを保持していることを指示します。 HTML ジェネレータは、そのドキュメントを含むページを作成します。 ジェネレータは、`Page documentation' という章で、 新しいセクションを開始します。

例:
/*! \page page1 A documentation page
  This page contains the subsections \ref subsection1 and \ref subsection2.
  For more info see section \ref page2.
  \subsection subsection1 The first subsection
  Text.
  \subsection subsection2 The second subsection
  More text.
*/

/*! \page page2 Another page
  Even more info.
*/

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。
注:
<名前> 引数は、英文字と数字との組み合わせからなります。 もし、<名前> 引数で、大文字だけを使ったり (MYPAGE1 など)、 大文字と小文字をミックスして使ったり (MyPage1 など) したい場合は、 CASE_SENSE_NAMESYES に設定しておく必要があります。 ただし、これは、ファイルシステムが大文字・小文字を区別する場合にのみ 有効なアドバイスです。その他のシステムでは (また可搬性を高めるためにも)、 ページへの参照となる <名前> には、 すべて小文字 (mypage1 など) を使用するべきです。
参照:
セクション \section、 セクション \subsection、 セクション \ref

\relates <名前>

このコマンドは、<名前> という非メンバー関数のドキュメントで使われます。 これを使うと、その関数が、クラスドキュメントの「関連する関数」 というセクションに入れられます。 このコマンドは、フレンドでないにもかかわらず、 特定のクラスに強く結び付いている関数にドキュメントを付けるのに有用です。 これにより、ファイルにドキュメント付けをする必要性がなくなりますが、 機能するのは、関数に対してだけです。

例:
/*! 
 * A String class.
 */ 
  
class String
{
  friend int strcmp(const String &,const String &);
};

/*! 
 * Compares two strings.
 */

int strcmp(const String &s1,const String &s2)
{
}

/*! \relates String
 * A string debug function.
 */

void stringDebug()
{
}

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\showinitializer

デフォルトでは、define の値および変数の初期化子は、 30行を超えない場合にのみ、表示されます。 define または変数のコメントブロックの中でこのコマンドを使うと、 初期化子は無条件に表示されるようになります。

参照:
セクション \hideinitializer

\struct <名前> [<ヘッダーファイル>] [<ヘッダー名>]

コメントブロックが、 <名前> という構造体に対するドキュメントを保持していることを指示します。 引数は、\class コマンドのものと同じです。

参照:
セクション \class

\typedef (typedef 宣言)

コメントブロックが、 (グローバルか、クラスのメンバーか、どちらかの) typedef に対するドキュメントを保持していることを指示します。 このコマンドは、\var および \fn と等価です。

参照:
セクション \fn および \var

\union <名前> [<ヘッダーファイル>] [<ヘッダー名>]

コメントブロックが、 <名前> という共用体に対するドキュメントを保持していることを指示します。 引数は、\class コマンドのものと同じです。

参照:
セクション \class

\var (変数宣言)

コメントブロックが、 (グローバルか、クラスのメンバーか、どちらかの) 変数または enum 値に対するドキュメントを保持していることを指示します。 このコマンドは、\typedef および \fn と等価です。

参照:
セクション \fn および \typedef

\weakgroup <名前> [(タイトル)]

\addtogroup と全く同様に使用することができますが、 グループ化定義での衝突を解消するという時には優先度が低くなります。

参照:
ページ グループ化 および セクション \addtogroup

--- セクション指示子 (Section indicators) ---


\attention { 注意すべきテキスト }

注意してほしいメッセージを記入することができるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \attention コマンドは、1つのパラグラフに結合されます。 \attention コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。


\author { 作者のリスト }

1個またはそれ以上の作者名を記入できるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \author コマンドは、カンマで区切られて、 1つのパラグラフに結合されます。 別のやり方として、1つの \author コマンドで複数の作者名を挙げることもできます。 \author コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。

例:
/*! \class WindowsNT
 *  \brief Windows Nice Try.
 *  \author Bill Gates
 *  \author Several species of small furry animals gathered together 
 *          in a cave and grooving with a pict.
 *  \version 4.0
 *  \date    1996-1998
 *  \bug It crashes a lot and requires huge amounts of memory.
 *  \bug The class introduces the more bugs, the longer it is used.
 *  \warning This class may explode in your face.
 *  \warning If you inherit anything from this class, you're doomed.
 */

class WindowsNT {};

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\brief {簡易記述}

簡易記述として使うことのできるパラグラフを開始します。 クラスおよびファイルに対しては、 リストの中や、ドキュメントページの最初の部分で、簡易記述が使われます。 クラスおよびファイルのメンバーに対しては、 メンバーの宣言のところに配置されたり、詳細記述の前に付加されたりします。 簡易記述は、複数行にまたがることができます (が、簡潔さを保つことをお勧めします!)。 簡易記述は、空行あるいは、 別のセクション導入コマンドに行き当たると終了します。 複数の \brief コマンドが現れた場合、それらは結合されます。 例については、\author を参照してください。

同義語: \short


\bug { バグ記述 }

1個またはそれ以上のバグを報告することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \bug コマンドは、1つのパラグラフに結合されます。 そのとき、各々のバグ記述は、新しい行から始まります。 別のやり方として、1つの \bug コマンドで複数のバグを挙げることもできます。 \bug コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。 例については、\author を参照してください。


\date { 日時記述 }

1個またはそれ以上の日時を記入することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \date コマンドは、1つのパラグラフに結合されます。 そのとき、各々の日時記述は、新しい行から始まります。 別のやり方として、1つの \date コマンドで複数の日時を記述することもできます。 \date コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。 例については、\author を参照してください。


\deprecated { 記述 }

このドキュメントブロックが非推奨要素についてのものであるということを指示する パラグラフを開始します。 代替物や推定有効期間などを記述するのに使用できます。


\else

前の条件付きセクションが有効でなかった場合に 条件付きセクションを開始します。 前のセクションは、 \if, \ifnot, または \elseif コマンドで始まっていなければなりません。

参照:
\if, \ifnot, \elseif, \endif.

\elseif <セクションラベル>

前の条件付きセクションが有効でなかった場合に 条件付きドキュメンテーションセクションを開始します。 デフォルトで、条件付きセクションは無効になっています。 有効にするには、設定ファイルの中で ENABLED_SECTIONS タグの後に セクションラベルを置かなければなりません。 条件付きブロックはネストすることができます。 ネストされたセクションは、 その外側のセクションもすべて有効になっている場合に限り、 有効になります。

参照:
sections \endif, \ifnot, \else, and \elseif.

\endif

\if または \ifnot で始まった条件付きセクションを終了させます。 各 \c\ifnot\c を対応させなければなりません。

参照:
\if, および \ifnot

\exception <例外オブジェクト> { 例外記述 }

<例外オブジェクト> という名前の例外オブジェクトに対する例外記述を開始します。 後には、例外についての記述が続きます。 例外オブジェクトが存在するかどうかについては、チェックされません。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \exception コマンドは、1つのパラグラフに結合されます。 そのとき、各々の例外記述は、新しい行から始まります。 \exception コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。 例については、\fn を参照してください。

注:
\exceptions タグは、このタグの同義語です。

\if <セクションラベル>

条件付きドキュメンテーションセクションを開始します。 セクションは、対応する \endif で終了します。 デフォルトでは、条件付きセクションは無効になっています。 有効にするためには、設定ファイルで、 ENABLED_SECTIONS タグの後に セクションラベルを置く必要があります。 条件付きブロックは、ネストすることができます。 ネストの内側のセクションが有効になるのは、 それを囲むすべてのセクションも有効である場合だけです。

例:
  /*! Uncoditionally shown documentation.
   *  \if Cond1
   *    Only included if Cond1 is set.
   *  \endif
   *  \if Cond2
   *    Only included if Cond2 is set.
   *    \if Cond3
   *      Only included if Cond2 and Cond3 are set.
   *    \endif
   *    More text.
   *  \endif
   *  Unconditional text.
   */
条件コマンドを別名の内部で使うこともできます。 2つの言語でクラスにドキュメントを付けるには、たとえば、以下のように使います:
例 2:
/*! \english
 *  This is English.
 *  \endenglish
 *  \dutch
 *  Dit is Nederlands.
 *  \enddutch
 */
class Example
{
};

ただし、設定ファイルで以下のような別名が定義されているものとします:

ALIASES  = "english=\if english" \
           "endenglish=\endif" \
           "dutch=\if dutch" \
           "enddutch=\endif"

そして、english または dutch のいずれかを有効にするために、 ENABLED_SECTIONS が使用されます。

参照:
セクション \endif

\ifnot <セクションラベル>

条件付きドキュメンテーションセクションを開始します。 セクションは、対応する \endif で終了します。 この条件付きセクションは、デフォルトで有効になっています。 無効にするためには、設定ファイルで、 ENABLED_SECTIONS タグの後に セクションラベルを置く必要があります。

参照:
sections \endif, \if, \else, および \elseif.

\invariant { 不変表明記述 }

実体についての不変表明を記述することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \invariant コマンドは、1つのパラグラフに結合されます。 そのとき、各々の不変表明は、新しい行から始まります。 別のやり方として、1つの \invariant コマンドで複数の不変表明を記述することもできます。 \invariant コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。


\note { テキスト }

注釈の記述できるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \note コマンドは、1つのパラグラフに結合されます。 そのとき、各々の注釈は、新しい行から始まります。 別のやり方として、1つの \note コマンドで複数の注釈を記述することもできます。 \note コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。 例については、\par を参照してください。


\par [(パラグラフタイトル)] { パラグラフ }

パラグラフタイトルが与えられると、 このコマンドはユーザ定義の見出しを持つパラグラフを開始します。 見出しの範囲は、行の終わりまでです。 このコマンドに後続するパラグラフはインデントされます。

パラグラフタイトルが与えられなかった場合は、 このコマンドは、新しいパラグラフを開始します。 これは、他のパラグラフコマンド (\param や \warning のような) の内部でも機能します。その際、そのコマンドを終了させることはありません。

パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 \par コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。

例:
/*! \class Test
 * Normal text.
 *
 * \par User defined paragraph:
 * Contents of the paragraph.
 *
 * \par
 * New paragraph under the same heading.
 *
 * \note
 * This note consists of two paragraphs.
 * This is the first paragraph.
 *
 * \par
 * And this is the second paragraph.
 *
 * More normal text. 
 */
  
class Test {};

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\param <引数名> { 引数記述 }

<引数名> という名前の関数引数についての説明を開始します。 後には、引数についての記述が続きます。 引数が実際に存在するかどうかはチェックされません。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \parameter コマンドは、1つのパラグラフに結合されます。 そのとき、各々の引数記述は、新しい行から始まります。 \param 記述は、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。 例については、\fn を参照してください。


\post { 事後条件記述 }

実体についての事後条件を記述することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \post コマンドは、1つのパラグラフに結合されます。 そのとき、各々の事後条件は、新しい行から始まります。 別のやり方として、1つの \post コマンドで複数の事後条件を記述することもできます。 \post コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。


\pre { 事前条件記述 }

実体についての事前条件を記述することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \pre コマンドは、1つのパラグラフに結合されます。 そのとき、各々の事前条件は、新しい行から始まります。 別のやり方として、1つの \pre コマンドで複数の事前条件を記述することもできます。 \pre コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。


\remarks { 意見のテキスト }

1つまたはそれ以上の意見を記述できるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \remarks コマンドは、1つのパラグラフに結合されます。 そのとき、各々の意見は、新しい行から始まります。 別のやり方として、1つの \remarks コマンドで複数の意見を記述することもできます。 \remarks コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。


\return { 戻り値の記述 }

関数の戻り値についての記述を開始します。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \return コマンドは、1つのパラグラフに結合されます。 \returnコマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。 例については、\fn を参照してください。


\retval <戻り値> { 記述 }

関数の戻り値で、<戻り値> という名前のものについての記述を開始します。 後には、戻り値についての記述が続きます。 記述を構成するパラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \retval コマンドは、1つのパラグラフに結合されます。 そのとき、各々の戻り値の記述は、新しい行から始まります。 \retval コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。


\sa { 参照 }

クラス、関数、メソッド、変数、ファイルまたは URL に対する、 1つまたはそれ以上のクロスリファレンスを指定することのできるパラグラフを開始します。 2つの名前が :: または # で結合されたものは、 クラスとそのメンバーを指していると解釈されます。 メソッド名の後に、カッコで囲まれた引数型リストを付加することで、 オーバーロードされた複数のメソッドやコンストラクタの 1つを選択することができます。

同義語: \see

参照:
オブジェクトへのリンクをどのように生成するかということについては、 セクション autolink を参照

\since { テキスト }

このタグは、実体が利用可能になった時期 (バージョンや日時) を指定するのに使われます。 \since に続くパラグラフには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 \since コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。


\test { テストケースを記述するパラグラフ }

テストケースを記述することのできるパラグラフを開始します。 この記述により、テストケースは、別のテストリストにも追加されます。 この2つの記述インスタンスは、クロスリファレンスで結ばれます。 テストリスト内の各テストケースには、 そのテストケースの出自を示すヘッダーが付加されます。


\throw <例外オブジェクト> { 例外記述 }

同義語: \exception (セクション \exception を参照)

注:
\throws タグは、このタグの同義語です。

\todo { TODO を記述するパラグラフ }

TODO 項目を記述するパラグラフを開始します。 この記述により、別の TODO リストにも項目が追加されます。 この2つの記述インスタンスは、クロスリファレンスで結ばれます。 TODO リスト内の各項目には、 その項目の出自を示すヘッダーが付加されます。


\version { バージョン番号 }

1つまたはそれ以上のバージョン文字列を記述することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \version コマンドは、1つのパラグラフに結合されます。 そのとき、各々のバージョン記述は、新しい行から始まります。 別のやり方として、 1つの \version コマンドで複数のバージョン文字列を記述することもできます。 \version コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。 例については、\author を参照してください。


\warning { 警告メッセージ }

1つまたはそれ以上の警告メッセージを記述することのできるパラグラフを開始します パラグラフはインデントされます。 パラグラフのテキストには、何も特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 隣接する複数の \warning コマンドは、1つのパラグラフに結合されます。 そのとき、各々の警告記述は、新しい行から始まります。 別のやり方として、 1つの \warning コマンドで複数の警告を記述することもできます。 \warning コマンドは、空行あるいは、 何か他のセクション導入コマンドに行き当たると終了します。 例については、\author を参照してください。


--- リンク生成コマンド ---

\addindex (テキスト)

このコマンドは、 インデックスに (テキスト) を追加します。


\anchor <語>

このコマンドは、\ref コマンドで参照することができるドキュメントに 不可視な名前付きアンカーを埋め込みます。

参照:
セクション \ref

\endlink

このコマンドは、\link コマンドによって開始されたリンクを終了させます。

参照:
セクション \link

\link <リンクオブジェクト>

doxygen によって自動的に生成されるリンクは、 それが指示しているオブジェクトの名前を、 リンクテキストとして、常に保持しています。

\link コマンドを使用すると、ユーザが指定したリンクテキストを持った、 (ファイル、クラス、メンバーなどの) オブジェクトへのリンクを生成することができます。 \link コマンドは、\endlink コマンドによって終了します。 \link と \endlink の間にあるすべてのテキストは、 \link の最初の引数で指定された <リンクオブジェクト> へのリンクについてのテキストとして扱われます。

自動的に生成されてリンクおよび妥当なリンクオブジェクトについて、 より詳しくは、セクション autolink を参照。


\ref <名前> ["(テキスト)"]

名前の付いたセクション、サブセクション、ページ、またはアンカーへの 参照を生成します。 HTML ドキュメントでは、参照コマンドはセクションへのリンクを生成します。 セクションやサブセクションに対しては、セクションのタイトルは、 リンクのテキストとして使用されます。 アンカーに対しては、グォートに囲まれたオプションのテキストか、 それが指定されていなければ、<名前> が使用されます。 ドキュメントでは、参照コマンドは、 セクションに対してセクション番号を生成します。あるいは、 <名前> がアンカーを指示している場合には、 テキストとそれに後続するページ番号を生成します。

参照:
\ref コマンドの例については、セクション \page を参照

\section <セクション名> (セクションタイトル)

<セクション名> という名前のセクションを生成します。 \section コマンドの第2引数として、 セクションのタイトルを指定する必要があります。

警告:
このコマンドは、関連するページドキュメントの内部でのみ機能します。 その他のドキュメントブロックでは機能しません
参照:
\section コマンドの例については、 セクション \page を参照

\subsection <サブセクション名> (サブセクションタイトル)

<サブセクション名> という名前のサブセクションを生成します。 \subsection コマンドの第2引数として、 サブセクションのタイトルを指定する必要があります。

警告:
このコマンドは、関連するページドキュメントの内部でのみ機能します。 その他のドキュメントブロックでは機能しません
参照:
\subsection コマンドの例については、 セクション \page を参照

--- 実例を表示するためのコマンド ---

\dontinclude <ファイル名>

このコマンドは、ソースファイルを解析するのに使われます。 その際、(\include コマンドが行うように) ドキュメントにファイルを一字一句正確に取り込むようなことはしません。 これは、ソースファイルをいくつかの小部分に分割し、 それらの間にドキュメントを追加したいような場合に、役立ちます。 ソースファイルやディレクトリは、doxygen の設定ファイルで、 EXAMPLE_PATH タグを使うことによって指定できます。

コード断片内にあるクラスおよびメンバーの宣言・定義は、 \dontinclude コマンドを含んでいるコメントブロックの解析中に 「思い出され」ます。

ソースファイルの一行ごとの記述に対しては、 \line、\skip、\skipline および \until コマンドを使うことによって、 実例の1行またはそれ以上の行が表示されます。 これらのコマンドに対しては、内部的なポインタが使用されます。 \dontinclude コマンドは、実例の最初の行にポインタをセットします。

例:
/*! A test class. */

class Test
{
  public:
    /// a member function
    void example();
};

/*! \page example
 *  \dontinclude example_test.cpp
 *  Our main function starts like this:
 *  \skip main
 *  \until {
 *  First we create a object \c t of the Test class.
 *  \skipline Test
 *  Then we call the example member function 
 *  \line example
 *  After that our little test routine ends.
 *  \line }
 */

ここで、実例ファイル example_test.cpp の内容は、以下のようなものです:
void main()
{
  Test t;
  t.example();
}

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。
参照:
セクション \line\skip\skipline および \until

\include <ファイル名>

このコマンドを使うと、コードブロックとしてソースファイルをインクルードすることができます。 コマンドは、引数として、インクルードファイルの名前を必要とします。 ソースファイルやディレクトリは、doxygen の設定ファイルで、 EXAMPLE_PATH タグを使うことによって指定できます。

EXAMPLE_PATH タグで指定された実例ファイルの集合に対して、 <ファイル名> だけでは一意にファイルを決定できない場合、 それを解決するために、絶対パスの一部を含めることができます。

\include コマンドを使用することは、ファイルをドキュメントブロックに挿入して、 それを \code\endcode コマンドで囲むことと等価です。

\include コマンドの主な目的は、 実例ブロックが複数のソースおよびヘッダーファイルから構成されているような場合に、 コードの重複を避けることにあります。

ソースファイルの一行ごとの記述に対しては、 \line\skip\skipline、 および \until コマンドと共に、\dontinclude コマンドを使用します。

参照:
セクション \example および \dontinclude

\line ( パターン )

このコマンドは、\include または \dontinclude によって最後にインクルードされた実例を、 非空白行が見つかるまで、一行ずつ検索していきます。 見つかった行が指定のパターンを含んでいる場合、それは出力に書き出されます。

実例の中の現在行を追跡するのに使われる内部的なポインタは、 見つかった非空白行の次の行の先頭 (あるいは、そのような行が見つからない場合は、 実例の末尾) に設定されます。

例については、セクション \dontinclude を参照してください。


\skip ( パターン )

このコマンドは、\include または \dontinclude によって最後にインクルードされた実例を、 指定のパターンを含む行が見つかるまで、一行ずつ検索していきます。

実例の中の現在行を追跡するのに使われる内部的なポインタは、 指定パターンを含む行の先頭 (あるいは、パターンが見つからなかった場合は、 実例の末尾) に設定されます。

例については、セクション \dontinclude を参照してください。


\skipline ( パターン )

このコマンドは、\include または \dontinclude によって最後にインクルードされた実例を、 指定のパターンを含む行が見つかるまで、一行ずつ検索していきます。 見つかった行は、出力に書き出されます。

実例の中の現在行を追跡するのに使われる内部的なポインタは、 書き出された行の次の行の先頭 (あるいは、パターンが見つからなかった場合は、 実例の末尾) に設定されます。

注:
コマンド:
\skipline pattern
は、次のものと等価です:
\skip pattern
\line pattern
例については、セクション \dontinclude を参照してください。


\until ( パターン )

このコマンドは、指定のパターンを含む行が見つかるまで、 \include または \dontinclude によって最後にインクルードされた実例の 全ての行を出力に書き出します。パターンを含む行も書き出されます。

実例の中の現在行を追跡するのに使われる内部的なポインタは、 最後に書き出された行の次の行の先頭 (あるいは、パターンが見つからなかった場合は、 実例の末尾) に設定されます。

例については、セクション \dontinclude を参照してください。


\verbinclude <ファイル名>

このコマンドは、ファイル <ファイル名> の字句通りのコピーを、 ドキュメントに取り込みます。 このコマンドは、ファイルをドキュメントにペーストして、 \verbatim と \endverbatim コマンドで囲むことと等価です。

doxygen が検索の対象とするファイルやディレクトリは、 設定ファイルの EXAMPLE_PATH タグによって指定できます。


\htmlinclude <ファイル名>

このコマンドは、HTMLドキュメントの中になるように、 ファイル <ファイル名> を取り込みます。 このコマンドは、ファイルをドキュメントにペーストして、 \htmlonly と \endhtmlonly コマンドで囲むことと等価です。

doxygen が検索の対象とするファイルやディレクトリは、 設定ファイルの EXAMPLE_PATH タグによって指定できます。


--- 視覚的強調のためのコマンド ---

\a <語>

特別なファントを使用して、引数 <語> を表示します。 実行中のテキスト内のメンバー引数を参照するには、このコマンドを使用してください。

例:
  ... the \a x and \a y coordinates are used to ...
  
これは、次のテキストのような結果となります:

... the x and y coordinates are used to ...

\arg { 項目記述 }

このコマンドは、一つの引数を取ります。引数は、空行または別の \arg に 遭遇するまで続きます。 このコマンドを使用すると、単純でネストされない引数リストが生成できます。 各引数は、\arg コマンドで始まる必要があります。

例:
以下のようにタイブすると:
  \arg \c AlignLeft left alignment.
  \arg \c AlignCenter center alignment.
  \arg \c AlignRight right alignment
  
  No other types of alignment are supported.
  
次のテキストのような結果となります:


No other types of alignment are supported.
Note:
ネストされたリストには、HTMLコマンドを使う必要があります。
\li に等価。


\b <語>

ボールドフォントを使用して、引数 <語> を表示します。 <b>word</b> に等価。


\c <語>

タイプライタフォントを使用して、引数 <語> を表示します。 コードとなる語を参照するために使用します。 <tt>word</tt> に等価。

例:
Typing:
     ... This function returns \c void and not \c int ...
  
これは、次のテキストのような結果となります:

... This function returns void and not int ...
\p に等価。


\code

コードブロックを開始します。 コードブロックは、通常のテキストとは区別して扱われ、 C/C++ のコードとして解釈されます。 ドキュメント化されるクラスとメンバーの名前は、 ドキュメントへのリンクで自動的に置換されます。

参照:
セクション \endcode、セクション \verbatim

\dotfile <ファイル> ["キャプション"]

<ファイル> から dot によって生成された画像を、ドキュメントに挿入します。

最初の引数は画像のファイル名を指定します。 doxygen は、そのファイルを、DOTFILE_DIRS タグで指定されたパス (またはファイル) の中から探します。 dot ファイルが見つかった場合、それは dot ツールへの入力ファイルとして扱われます。 出来上がった画像は正しい出力ディレクトリに出力されます。 dot ファイル名が空白文字を含む場合は、ファイル名をクォート (") で囲まなければなりません。

2番目の引数はオプショナルですが、これを使用して画像の下に表示される キャプションを指定することができます。 この引数は、たとえ空白文字を含んでいなくてもクォートで囲んで記述する 必要があります。クォートはキャプションが表示されるときに除去されます。


\e <語>

引数 <語> をイタリック体で表示します。 このコマンドは、語を強調するために使います。

例:
以下のようにタイプすると:
  ... this is a \e really good example ... 
  
次のテキストのような結果となります:

... this is a really good example ...
\em に等価。


\em <語>

引数 <語> をイタリック体で表示します。 このコマンドは、語を強調するために使います。

例:
以下のようにタイプすると:
  ... this is a \em really good example ... 
  
次のテキストのような結果となります:

... this is a really good example ...
\e に等価。


\endcode

コードブロックを終了します。

参照:
セクション \code

\endhtmlonly

\htmlonly コマンドで始まったテキストブロックを終了します。

参照:
セクション \htmlonly

\endlatexonly

\latexonly コマンドで始まったテキストブロックを終了します。

参照:
セクション \latexonly

\endverbatim

\verbatim コマンドで始まったテキストブロックを終了します。

参照:
セクション \verbatim

\f$

テキスト内の式の開始と終了をマークします。

参照:
例については、セクション formulas

\f[

別の行に中央揃えで表示される、長い式の開始をマークします。

参照:
セクション \f] および、セクション formulas

\f]

別の行に中央揃えで表示される、長い式の終了をマークします。

参照:
セクション \f[ および、セクション formulas

\htmlonly

生成された HTML ドキュメントにのみ、字句通りにインクルードされるテキストブロックを開始します。 ブロックは、\endhtmlonly コマンドで終了します。

このコマンドは、doxygen にとっては複雑すぎる HTML コード (すなわち、アプレット、Javaスクリプト、属性を必要とする HTML タグ) をインクルードするために使用することができます。 適切な という代替物を提供するために、 \latexonly と \endlatexonly のペアを使うことができます。

: ($(HOME) のような) 環境変数は、HTML-only なブロックの内部で解釈されます。

参照:
セクション \htmlonly および、 セクション \latexonly

\image <フォーマット> <ファイル> ["キャプション"] [<サイズ指示>=<サイズ>]

ドキュメントに画像を挿入します。 このコマンドはフォーマットを特定します。 したがって、一つの画像を 2つ以上のフォーマットで挿入したい場合は、 各フォーマットごとにこのコマンドを繰り返さなければなりません。

最初の引数で、出力フォーマットを指定します。 現在のところ、以下の値がサポートされています: html および latex。

2番目の引数で、画像のファイル名を指定します。 doxygen は、IMAGE_PATH タグの後に指定したパス (またはファイル) の中から、ファイルを探し出します。 画像が見つかると、それは、現在の出力ディレクトリにコピーされます。 画像名が空白文字を含んでいる場合は、クォート (") で囲む必要があります。 ファイル名のかわりに絶対 URL を指定することもできます。しかし、その場合、 doxygen は、画像のコピーも存在チェックもしません。

3番目の引数はオプションです。これを使うと、 画像の下に表示されるキャプションを指定することができます。 この引数は、空白文字を全く含まない場合であっても、 クォートで囲まなければなりません。 クォートは、キャプションが表示される前に取り除かれます。

4番目の引数もオプションです。これを使うと、 画像の幅や高さを指定することができます。 これは、 出力 (すなわち、フォーマット=latex) に対してのみ、有用です。 サイズ指示 は、width または height のいずれかです。 サイズは、 において有効なサイズ指定である必要があります (たとえば、10cm6in\textwidth のようなシンボリックな幅指定)。

下は、コメントブロックの例です:

  /*! Here is a snapshot of my new application:
   *  \image html application.jpg
   *  \image latex application.eps "My application" width=10cm
   */

また、下は、設定ファイルの関連部分の例です:

  IMAGE_PATH     = my_image_dir

警告:
HTML に対する画像フォーマットは、 ユーザが使用しているブラウザがサポートしているものに制限されます。 については、画像フォーマットは、 Encapsulated PostScript (eps) でなければなりません。

doxygen は、画像が正しいフォーマットであるかどうかチェックしません。 したがって、それが正しいということは、ユーザが確認しなければなりません!

\latexonly

生成された ドキュメントにのみ、 字句通りにインクルードされるテキストブロックを開始します。 ブロックは、\endlatexonly コマンドで終了します。

このコマンドは、doxygen にとっては複雑すぎる コード (すなわち、画像、式、特殊文字) をインクルードするために使用することができます。 適切な HTML という代替物を提供するために、 \htmlonly と \endhtmlonly のペアを使うことができます。

: ($(HOME) のような) 環境変数は、 -only なブロックの内部で解釈されます。

参照:
セクション \latexonly および セクション \htmlonly

\li { 項目記述 }

このコマンドは、一つの引数を取ります。引数は、空行または別の \li に 遭遇するまで続きます。 このコマンドを使用すると、単純でネストされない引数リストが生成できます。 各引数は、\li コマンドで始まる必要があります。

例:
以下のようにタイブすると:
  \li \c AlignLeft left alignment.
  \li \c AlignCenter center alignment.
  \li \c AlignRight right alignment
  
  No other types of alignment are supported.
  
次のテキストのような結果となります:


No other types of alignment are supported.
注:
ネストされたリストには、HTMLコマンドを使う必要があります。
\arg に等価。


\p <語>

タイプライタフォントを使用して、引数 <語> を表示します。 このコマンドを使用すると、 実行中のテキスト内のメンバー関数の引数を参照することができます。

例:
  ... the \p x and \p y coordinates are used to ...
  
これは、次のテキストのような結果となります:

... the x and y coordinates are used to ...
\c に等価。


\verbatim

HTML および の両方のドキュメントに、 字句通りにインクルードされるテキストブロックを開始します。 ブロックは、\endverbatim コマンドで終了する必要があります。 verbatim ブロック内では、すべてのコマンドが無効となります。

警告:
各 \verbatim コマンドに対して、 確実に \endverbatim コマンドを付けてください。 さもないと、doxygen パーサは混乱してしまいます!

\\

このコマンドは、HTML および 出力に、 バックスラッシュ文字 (\) を書き出します。 doxygen は、バックスラッシュによってコマンドを検出するので、 バックスラッシュをエスケープしなければならない場合があります。


\@

このコマンドは、HTML および 出力に、 アットマーク (\) を書き出します。 doxygen は、アットマークによって JavaDoc コマンドを検出するので、 アットマークをエスケープしなければならない場合があります。


\&

このコマンドは、HTML および 出力に、 & 文字を書き出します。 この文字は、HTML において特別な意味を持つので、エスケープする必要があります。


\$

このコマンドは、HTML および 出力に、 $ 文字を書き出します。 この文字は、環境変数を展開するのに使われるので、 エスケープしなければならない場合があります。


\#

このコマンドは、HTML および 出力に、 # 文字を書き出します。 この文字は、ドキュメント付けされた実体を参照するのに使われるので、 エスケープしなければならない場合があります。


\\<

このコマンドは、HTML および 出力に、 < 文字を書き出します。 この文字は、HTML において特別な意味を持つので、エスケープする必要があります。


\\>

このコマンドは、HTML および 出力に、 > 文字を書き出します。 この文字は、HTML において特別な意味を持つので、エスケープする必要があります。


--- Qt との互換性のために存在するコマンド ---

以下のコマンドは、 Qt クラスブラウザジェネレータとの互換性を維持するためにサポートされています。 これらのコマンドをユーザ自身のドキュメントでは使わないでください。


Doxygen manualに対してThu Dec 20 11:07:24 2001に生成されました。 doxygen1.2.11.1 の開発者: Dimitri van Heesch, © 1997-2001