特殊コマンド

はじめに

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

一部のコマンドには1つ以上の引数があります。各引数には特定の範囲があります。

  • もし <山括弧> が使用されている場合、引数は単一の単語です。
  • もし (丸括弧) が使用されている場合、引数はコマンドが見つかった行の末尾まで拡張されます。
  • もし {波括弧} が使用されている場合、引数は次の段落まで拡張されます。段落は空白行またはセクションインジケータによって区切られます。{波括弧} はコマンドオプションにも使用されることに注意してください。この場合、波括弧は必須であり、単なる「通常の」文字です。開始の波括弧は、コマンドの直後に、スペースなしで続く必要があります。

上記の引数指定子に加えて [角括弧] が使用されている場合、引数はオプションですが、引用符で囲まれている場合は、コマンド引数の必須部分となります。

以下に、すべてのコマンドとそのドキュメントへの参照をアルファベット順に示します:

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

--- 構造インジケータ ---

\addtogroup <name> [(title)]

\defgroup と同様にグループを定義しますが、このコマンドとは異なり、同じ <name> を複数回使用しても警告は発生せず、代わりに結合されたドキュメントと、いずれかのコマンドで最初に見つかったタイトルを持つ1つのグループが作成されます。

タイトルはオプションなので、このコマンドは次のように @{@} を使用して、既存のグループに多数のエンティティを追加するためにも使用できます。

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

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

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

  /*! @} */
関連項目
ページ Grouping、セクション \defgroup\ingroup、および \weakgroup

\callgraph

このコマンドが関数またはメソッドのコメントブロックに配置され、HAVE_DOTYES に設定されている場合、Doxygenはその関数に対して呼び出しグラフを生成します(関数またはメソッドの実装が他のドキュメント化された関数を呼び出す場合に限る)。呼び出しグラフは CALL_GRAPH の値に関わらず生成されます。

呼び出しグラフの完全性(および正確性)は、完璧ではないDoxygenのコードパーサーに依存します。
関連項目
セクション \callergraph、セクション \hidecallgraph、セクション \hidecallergraph およびオプション CALL_GRAPH

\hidecallgraph

このコマンドが関数またはメソッドのコメントブロックに配置されている場合、Doxygenはその関数の呼び出しグラフを生成しません。呼び出しグラフは CALL_GRAPH の値に関わらず生成されません。

呼び出しグラフの完全性(および正確性)は、完璧ではないDoxygenのコードパーサーに依存します。
関連項目
セクション \callergraph、セクション \callgraph、セクション \hidecallergraph およびオプション CALL_GRAPH

\callergraph

このコマンドが関数またはメソッドのコメントブロックに配置され、HAVE_DOTYES に設定されている場合、Doxygenはその関数に対して呼び出し元グラフを生成します(関数またはメソッドの実装が他のドキュメント化された関数によって呼び出される場合に限る)。呼び出し元グラフは CALLER_GRAPH の値に関わらず生成されます。

呼び出し元グラフの完全性(および正確性)は、完璧ではないDoxygenのコードパーサーに依存します。
関連項目
セクション \callgraph、セクション \hidecallgraph、セクション \hidecallergraph およびオプション CALLER_GRAPH

\hidecallergraph

このコマンドが関数またはメソッドのコメントブロックに配置されている場合、Doxygenはその関数の呼び出し元グラフを生成しません。呼び出し元グラフは CALLER_GRAPH の値に関わらず生成されません。

呼び出し元グラフの完全性(および正確性)は、完璧ではないDoxygenのコードパーサーに依存します。
関連項目
セクション \callergraph、セクション \callgraph、セクション \hidecallgraph およびオプション CALLER_GRAPH

\showrefby

このコマンドが関数、メソッド、または変数のコメントブロックに配置されている場合、Doxygenはその関数、メソッド、変数について、それを呼び出す/使用する(ドキュメント化された)関数およびメソッドの概要を生成します。この概要は REFERENCED_BY_RELATION の値に関わらず生成されます。

概要の完全性(および正確性)は、完璧ではないDoxygenのコードパーサーに依存します。
関連項目
セクション \showrefs、セクション \hiderefby、セクション \hiderefs およびオプション REFERENCED_BY_RELATION

\hiderefby

このコマンドが関数、メソッド、または変数のコメントブロックに配置されている場合、Doxygenはその関数、メソッド、変数について、それを呼び出す/使用する関数およびメソッドの概要を生成しません。この概要は REFERENCED_BY_RELATION の値に関わらず生成されません。

概要の完全性(および正確性)は、完璧ではないDoxygenのコードパーサーに依存します。
関連項目
セクション \showrefs、セクション \showrefby、セクション \hiderefs およびオプション REFERENCED_BY_RELATION

\showrefs

このコマンドが関数またはメソッドのコメントブロックに配置されている場合、Doxygenはその関数またはメソッドについて、それを呼び出す関数およびメソッドの概要を生成します。この概要は REFERENCES_RELATION の値に関わらず生成されます。

概要の完全性(および正確性)は、完璧ではないDoxygenのコードパーサーに依存します。
関連項目
セクション \showrefby、セクション \hiderefby、セクション \hiderefs およびオプション REFERENCES_RELATION

\hiderefs

このコマンドが関数またはメソッドのコメントブロックに配置されている場合、Doxygenはその関数またはメソッドについて、それを呼び出す関数およびメソッドの概要を生成しません。この概要は REFERENCES_RELATION の値に関わらず生成されません。

概要の完全性(および正確性)は、完璧ではないDoxygenのコードパーサーに依存します。
関連項目
セクション \showrefs、セクション \showrefby、セクション \hiderefby およびオプション REFERENCES_RELATION

\showinlinesource

このコマンドが関数、複数行マクロ、列挙型、またはリスト初期化された変数のコメントブロックに配置されている場合、Doxygenはそのメンバーのインラインソースを生成します。インラインソースは INLINE_SOURCES の値に関わらず生成されます。

関連項目
セクション \hideinlinesource、オプション INLINE_SOURCES

\hideinlinesource

このコマンドが関数、複数行マクロ、列挙型、またはリスト初期化された変数のコメントブロックに配置されている場合、Doxygenはそのメンバーのインラインソースを生成しません。インラインソースは INLINE_SOURCES の値に関わらず生成されません。

関連項目
セクション \showinlinesource、オプション INLINE_SOURCES

\includegraph

このコマンドがファイルのコメントブロックに配置されている場合、Doxygenはそのファイルのインクルードグラフを生成します。インクルードグラフは INCLUDE_GRAPH の値に関わらず生成されます。

関連項目
セクション \hideincludegraph、セクション \includedbygraph、セクション \hideincludedbygraph およびオプション INCLUDE_GRAPH

\hideincludegraph

このコマンドがファイルのコメントブロックに配置されている場合、Doxygenはそのファイルのインクルードグラフを生成しません。インクルードグラフは INCLUDE_GRAPH の値に関わらず生成されません。

関連項目
セクション \includegraph、セクション \includedbygraph、セクション \hideincludedbygraph およびオプション INCLUDE_GRAPH

\includedbygraph

このコマンドがインクルードファイルのコメントブロックに配置されている場合、Doxygenはそのインクルードファイルに対して「含む元グラフ」を生成します。「含む元グラフ」は INCLUDED_BY_GRAPH の値に関わらず生成されます。

関連項目
セクション \hideincludedbygraph、セクション \ncludegraph、セクション \hideincludegraph およびオプション INCLUDED_BY_GRAPH

\hideincludedbygraph

このコマンドがインクルードファイルのコメントブロックに配置されている場合、Doxygenはそのインクルードファイルに対して「含む元グラフ」を生成しません。「含む元グラフ」は INCLUDED_BY_GRAPH の値に関わらず生成されません。

関連項目
セクション \includedbygraph、セクション \ncludegraph、セクション \hideincludegraph およびオプション INCLUDED_BY_GRAPH

\directorygraph

このコマンドがディレクトリ(セクション \dir を参照)のコメントブロックに配置されている場合、Doxygenはそのディレクトリのディレクトリグラフを生成します。ディレクトリグラフは DIRECTORY_GRAPH の値に関わらず生成されます。

関連項目
セクション \hidedirectorygraph、オプション DIRECTORY_GRAPH

\hidedirectorygraph

このコマンドがディレクトリ(セクション \dir を参照)のコメントブロックに配置されている場合、Doxygenはそのディレクトリのディレクトリグラフを生成しません。ディレクトリグラフは DIRECTORY_GRAPH の値に関わらず生成されません。

関連項目
セクション \directorygraph、オプション DIRECTORY_GRAPH

\collaborationgraph

このコマンドがクラスのコメントブロックに配置されている場合、Doxygenはそのクラスのコラボレーショングラフを生成します。コラボレーショングラフは COLLABORATION_GRAPH の値に関わらず生成されます。

関連項目
セクション \hidecollaborationgraph、オプション COLLABORATION_GRAPH

\hidecollaborationgraph

このコマンドがクラスのコメントブロックに配置されている場合、Doxygenはそのクラスのコラボレーショングラフを生成しません。コラボレーショングラフは COLLABORATION_GRAPH の値に関わらず生成されません。

関連項目
セクション \collaborationgraph、オプション COLLABORATION_GRAPH

\inheritancegraph['{option}']

このコマンドがクラスのコメントブロックに配置されている場合、Doxygenは option に従ってそのクラスの継承グラフを生成します。継承グラフは、CLASS_GRAPH の値に関わらず、option に従って生成されます。option の可能な値は、CLASS_GRAPH で使用できる値と同じです。option が指定されていない場合、値 YES が仮定されます。

関連項目
セクション \hideinheritancegraph、オプション CLASS_GRAPH

\hideinheritancegraph

このコマンドがクラスのコメントブロックに配置されている場合、Doxygenはそのクラスの継承グラフを生成しません。継承グラフは CLASS_GRAPH の値に関わらず生成されません。

関連項目
セクション \inheritancegraph、オプション CLASS_GRAPH

\groupgraph

このコマンドが \defgroup コマンドのコメントブロックに配置されている場合、Doxygenはそのグループのグループ依存関係グラフを生成します。グループグラフは GROUP_GRAPHS の値に関わらず生成されます。

関連項目
セクション \hidegroupgraph、オプション GROUP_GRAPHS

\hidegroupgraph

このコマンドが \defgroup コマンドのコメントブロックに配置されている場合、Doxygenはそのグループのグループ依存関係グラフを生成しません。グループグラフは GROUP_GRAPHS の値に関わらず生成されません。

関連項目
セクション \groupgraph、オプション GROUP_GRAPHS

\showenumvalues

このコマンドが列挙型のコメントブロックに配置されている場合、Doxygenはその列挙型の指定された列挙値を SHOW_ENUM_VALUES の値に関わらず表示します。

関連項目
セクション \hideenumvalues、オプション SHOW_ENUM_VALUES

\hideenumvalues

このコマンドが列挙型のコメントブロックに配置されている場合、Doxygenはその列挙型の指定された列挙値を SHOW_ENUM_VALUES の値に関わらず表示しません。

関連項目
セクション \showenumvalues、オプション SHOW_ENUM_VALUES

\qualifier <label> | "(text)"

このコマンドを使用すると、メンバーやクラスにカスタム修飾子ラベルを追加できます。これらのラベルは、「static」、「inline」、「final」などの自動生成されたラベルと同じ方法で出力に表示されます。

例えば、関数がテスト目的のみであることを示すには、\qualifier test を追加できます。


\category <name> [<header-file>] [<header-name>]

Objective-C のみ:コメントブロックが <name> という名前のクラスカテゴリのドキュメントを含んでいることを示します。引数は \class コマンドと同じです。

関連項目
セクション \class

\class <name> [<header-file>] [<header-name>]

コメントブロックが <name> という名前のクラスのドキュメントを含んでいることを示します。オプションでヘッダーファイルとヘッダー名を指定できます。ヘッダーファイルが指定されている場合、ヘッダーの逐語的なコピーへのリンクがHTMLドキュメントに含まれます。<header-name> 引数を使用して、クラスドキュメントで使用されるリンクの名前を <header-file> 以外のものに上書きできます。これは、インクルード名がデフォルトのインクルードパスにない場合(例:<X11/X.h>)に役立ちます。<header-name> 引数を使用すると、名前に引用符または山括弧を追加することで、インクルードステートメントがどのように見えるべきかも指定できます。名前のみが指定されている場合、山括弧が使用されます。最後の2つの引数は、\headerfile コマンドを使用しても指定できることに注意してください。

/* 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ドキュメントはこちらをクリックしてください。

\concept <name>

コメントブロックが <name> という名前の C++20 コンセプトのドキュメントを含んでいることを示します。ユーザーがそのコンセプトを使用するためにインクルードすべきヘッダーを指定するには、\headerfile コマンドも参照してください。


\def <name>

コメントブロックが #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.
*/
/*!
\brief Computes the absolute value of its argument \a x.
\param x input value.
\returns absolute value of \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 <name> (group title)

コメントブロックがクラス、モジュール、コンセプト、ファイル、または名前空間のトピックに関するドキュメントを含んでいることを示します。これは、シンボルを分類し、それらのカテゴリをドキュメント化するために使用できます。グループを他のグループのメンバーとして使用することもでき、これによりグループの階層を構築できます。

<name> 引数は単一の単語識別子である必要があります。

関連項目
ページ Grouping、セクション \ingroup\addtogroup、および \weakgroup

\dir [<path fragment>]

コメントブロックがディレクトリのドキュメントを含んでいることを示します。「パスフラグメント」引数には、ディレクトリ名と、プロジェクト内の他のディレクトリに対して一意となる十分なパスを含める必要があります。STRIP_FROM_PATH オプションは、完全なパスが出力に表示される前に何が除去されるかを決定します。


\enum <name>

コメントブロックが <name> という名前の列挙型のドキュメントを含んでいることを示します。列挙型がクラスのメンバーであり、ドキュメントブロックがクラス定義の外部にある場合、クラスのスコープも指定する必要があります。コメントブロックが列挙型宣言の直前にある場合、\enum コメントは省略できます。

匿名列挙型の型はドキュメント化できませんが、匿名列挙型の値はドキュメント化できます。
class Enum_Test
{
public:
enum TEnum { Val1, Val2 };
/*! Another enum, with inline docs */
enum AnotherEnum
{
V1, /*!< value 1 */
V2 /*!< value 2 */
};
};
/*! \class Enum_Test
* The class description.
*/
/*! \enum Enum_Test::TEnum
* A description of the enum type.
*/
/*! \var Enum_Test::TEnum Enum_Test::Val1
* The description of the first enum value.
*/
Doxygenによって生成された対応するHTMLドキュメントはこちらをクリックしてください。

\example['{lineno}'] <file-name>

コメントブロックがソースコードの例に関するドキュメントを含んでいることを示します。ソースファイルの名前は <file-name> です。このファイルの内容は、コメントブロックに含まれるドキュメントの直後にドキュメントに含まれます。必要に応じて、オプション {lineno} を追加して、例の行番号を有効にできます。すべての例はリストに配置されます。ソースコードはドキュメント化されたメンバーとクラスについてスキャンされます。見つかった場合、名前はドキュメントと相互参照されます。ソースファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。

<file-name> 自体が EXAMPLE_PATH タグで指定された例のファイルのセットに対して一意でない場合、絶対パスの一部を含めて曖昧さを解消できます。

例に複数のソースファイルが必要な場合は、\include コマンドを使用できます。

/** A Example_Test class.
* More details about this class.
*/
class Example_Test
{
public:
/** An example member function.
* More details about this function.
*/
void example();
};
void Example_Test::example() {}
/** \example example_test.cpp
* This is an example of how to use the Example_Test class.
* More details about this example.
*/
例ファイル example_test.cpp は次のようになります。
void main()
{
Example_Test t;
t.example();
}
Doxygenによって生成された対応するHTMLドキュメントはこちらをクリックしてください。
関連項目
セクション \include

\endinternal

このコマンドは、\internal コマンドで開始されたドキュメントフラグメントを終了します。\internal\endinternal の間のテキストは、INTERNAL_DOCSYES に設定されている場合にのみ表示されます。


\extends <name>

このコマンドは、プログラミング言語がこの概念をネイティブにサポートしていない場合(例:C)、手動で継承関係を示すために使用できます。

例ディレクトリのファイル manual.c は、このコマンドの使用方法を示しています(完全なファイルについては \memberof も参照してください)。

Doxygenによって生成された対応するHTMLドキュメントはこちらをクリックしてください。

関連項目
セクション \implements およびセクション \memberof

\file [<name>]

コメントブロックが <name> という名前のソースファイルまたはヘッダーファイルのドキュメントを含んでいることを示します。ファイル名が単独で一意でない場合、パスの一部または全体を含めることができます。ファイル名が省略された場合(つまり、\file の後の行が空白の場合)、\file コマンドを含むドキュメントブロックは、それが配置されているファイルに属します。

重要
グローバル関数、変数、typedef、および列挙型のドキュメントは、それらが含まれるファイルもドキュメント化されている場合、または EXTRACT_ALLYES に設定されている場合にのみ出力に含まれます。
/** \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ドキュメントはこちらをクリックしてください。
上記の例では、設定ファイルで JAVADOC_AUTOBRIEFYES に設定されています。

\fileinfo['{'option'}']

このコマンドが配置されているファイル名(の一部)を表示します。optionnameextensionfilenamedirectory、または full で、それぞれ次の意味を持ちます。

  • name 拡張子なしのファイル名
  • extension ファイルの拡張子
  • filename ファイル名、つまり nameextension を合わせたもの
  • directory 指定されたファイルのディレクトリ
  • full 指定されたファイルのフルパスとファイル名。

オプションが指定されていない場合、filename が使用されます。ただし、FULL_PATH_NAMESYES に設定されている場合は、full が使用されます。

コマンド \fileinfo は \file コマンドの引数として使用できません。
関連項目
セクション \lineinfo

\lineinfo

このコマンドが配置されているファイルの行番号を表示します。

関連項目
セクション \fileinfo

\fn (function declaration)

コメントブロックが関数(グローバルまたはクラスのメンバーとしてのいずれか)のドキュメントを含んでいることを示します。このコマンドは、コメントブロックが関数宣言または定義の前に(または後ろに)配置されていない場合にのみ必要です。

コメントブロックが関数宣言または定義の前にある場合、このコマンドは省略できます(冗長性を避けるためにも省略すべきです)。

引数を含む完全な関数宣言は、\fn コマンドの後に単一行で指定する必要があります。引数は行の終わりまで続くためです!

このコマンドは \var\typedef、および \property と同等です。

警告
このコマンドは、絶対に必要な場合以外は使用しないでください。情報の重複やエラーの原因となります。
class Fn_Test
{
public:
const char *member(char,int) throw(std::out_of_range);
};
const char *Fn_Test::member(char c,int n) throw(std::out_of_range) {}
/*! \class Fn_Test
* \brief Fn_Test class.
*
* Details about Fn_Test.
*/
/*! \fn const char *Fn_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\property、および \typedef

\headerfile <header-file> [<header-name>]

定義の前にドキュメントがあるクラス、構造体、または共用体のドキュメントに使用することを意図しています。このコマンドの引数は、\class の2番目と3番目の引数と同じです。<header-file> 名は、クラス、構造体、または共用体の定義を取得するためにアプリケーションがインクルードすべきファイルを参照します。<header-name> 引数を使用して、クラスドキュメントで使用されるリンクの名前を <header-file> 以外のものに上書きできます。これは、インクルード名がデフォルトのインクルードパスにない場合(例:<X11/X.h>)に役立ちます。

<header-name> 引数を使用すると、名前に二重引用符または山括弧を追加することで、インクルードステートメントがどのように見えるべきかを指定することもできます。デフォルトでは、名前のみが指定されている場合、山括弧が使用されます。

<header-file> または <header-name> 引数のいずれかに二重引用符のペアが与えられた場合、現在のファイル(コマンドが見つかったファイル)が引用符付きで使用されます。したがって、ファイル test.h 内に \headerfile コマンドがあるコメントブロックの場合、以下の3つのコマンドは同等です。

  \headerfile test.h "test.h"
  \headerfile test.h ""
  \headerfile "" 

山括弧を取得するためには何も指定する必要はありませんが、明示的にしたい場合は以下のいずれかを使用できます。

  \headerfile test.h <test.h>
  \headerfile test.h <>
  \headerfile <> 

デフォルトのインクルード表現をローカルインクルードにグローバルに反転させるには、FORCE_LOCAL_INCLUDESYES に設定します。

インクルード情報を完全に無効にするには、SHOW_HEADERFILENO に設定します。


\hideinitializer

デフォルトでは、define の値と変数の初期化子は、30行を超える場合を除き表示されます。define または変数のコメントブロックにこのコマンドを配置すると、初期化子は常に非表示になります。初期化行の最大数は、設定パラメータ MAX_INITIALIZER_LINES によって変更できます。デフォルト値は30です。

関連項目
セクション \showinitializer

\idlexcept <name>

コメントブロックが <name> という名前の IDL 例外のドキュメントを含んでいることを示します。


\implements <name>

このコマンドは、プログラミング言語がこの概念をネイティブにサポートしていない場合(例:C)、手動で継承関係を示すために使用できます。

例ディレクトリのファイル manual.c は、このコマンドの使用方法を示しています(完全なファイルについては \memberof も参照してください)。

Doxygenによって生成された対応するHTMLドキュメントはこちらをクリックしてください。

関連項目
セクション \extends およびセクション \memberof

\ingroup (<groupname> [<groupname>]*)

\ingroup コマンドが複合エンティティ(クラス、ファイル、名前空間など)のコメントブロックに配置されている場合、そのエンティティは <groupname> で識別されるグループに追加されます。メンバー(変数、関数、typedef、列挙型など)の場合、メンバーは1つのグループにのみ追加されます(メンバーがそのクラス、名前空間、またはファイルのコンテキストでドキュメント化されておらず、グループの一部としてのみ表示される場合に、曖昧なリンクターゲットを避けるため)。

関連項目
ページ Grouping、セクション \defgroup\addtogroup、および \weakgroup

\interface <name> [<header-file>] [<header-name>]

コメントブロックが <name> という名前のインターフェースのドキュメントを含んでいることを示します。引数は \class コマンドの引数と同じです。

関連項目
セクション \class

\internal

このコマンドは、内部使用のみを意図したドキュメントフラグメントを開始します。フラグメントはコメントブロックの終わりで自然に終了します。\endinternal コマンドを使用して、内部セクションを強制的に早く終了させることもできます。

\internal コマンドがセクション内(例えば \section を参照)に配置されている場合、コマンド以降のすべてのサブセクションも内部と見なされます。同じレベルの新しいセクションのみが、内部と見なされるフラグメントを終了します。

設定ファイルで INTERNAL_DOCS を使用して、内部ドキュメントを表示(YES)または非表示(NO)にできます。

関連項目
セクション \endinternal

\mainpage [(title)]

\mainpage コマンドがコメントブロックに配置されている場合、そのブロックはインデックスページ(HTML)または最初の章({\LaTeX})をカスタマイズするために使用されます。

title 引数はオプションであり、Doxygenが通常生成するデフォルトのタイトルを置き換えます。タイトルが不要な場合は、\mainpage の引数として notitle を指定できます。

例を挙げます

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

メインページは \ref index を使用して参照できます。

関連項目
セクション \section、セクション \subsection、およびセクション \page

\memberof <name>

このコマンドは、\relates と同様の方法で関数をクラスのメンバーにしますが、このコマンドを使用すると、関数はクラスの実際のメンバーとして表現されます。これは、プログラミング言語がメンバー関数の概念をネイティブにサポートしていない場合(例:C)に役立ちます。

このコマンドは、\public\protected、または \private と一緒に使用することも可能です。

例ディレクトリのファイル manual.c は、このコマンドの使用方法を示しています。
/**
* \file manual.c
*/
typedef struct Object Object; //!< Object type
typedef struct Vehicle Vehicle; //!< Vehicle type
typedef struct Car Car; //!< Car type
typedef struct Truck Truck; //!< Truck type
/*!
* Base object class.
*/
struct Object
{
int ref; //!< \private Reference count.
};
/*!
* Increments object reference count by one.
* \public \memberof Object
*/
static Object * objRef(Object *obj);
/*!
* Decrements object reference count by one.
* \public \memberof Object
*/
static Object * objUnref(Object *obj);
/*!
* Vehicle class.
* \extends Object
*/
struct Vehicle
{
Object base; //!< \protected Base class.
};
/*!
* Starts the vehicle.
* \public \memberof Vehicle
*/
void vehicleStart(Vehicle *obj);
/*!
* Stops the vehicle.
* \public \memberof Vehicle
*/
void vehicleStop(Vehicle *obj);
/*!
* Car class.
* \extends Vehicle
*/
struct Car
{
Vehicle base; //!< \protected Base class.
};
/*!
* Truck class.
* \extends Vehicle
*/
struct Truck
{
Vehicle base; //!< \protected Base class.
};
/*!
* Main function.
*
* Ref vehicleStart(), objRef(), objUnref().
*/
int main(void)
{
Car c;
vehicleStart((Vehicle*) &c);
}
Doxygenによって生成された対応するHTMLドキュメントはこちらをクリックしてください。
関連項目
セクション \extends\implements\public\protected および \private

\module <name>

コメントブロックが <name> という名前の C++20 モジュールのドキュメントを含んでいることを示します。


\name [(header)]

このコマンドは、コメントブロックをメンバーグループのヘッダー定義に変換します。コメントブロックの後には、グループのメンバーを含む @{ ... @} ブロックが続く必要があります。

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


\namespace <name>

コメントブロックが <name> という名前の名前空間のドキュメントを含んでいることを示します。


\nosubgrouping

このコマンドはクラスのドキュメントに配置できます。メンバーグルーピングと組み合わせて使用することで、Doxygenがメンバーグループを Public/Protected/Private/... セクションのサブグループとして配置するのを避けることができます。

関連項目
セクション \publicsection\protectedsection および \privatesection

\overload [(function declaration)]

このコマンドは、オーバーロードされたメンバー関数に対して以下の標準テキストを生成するために使用できます。

これは、便宜のために提供されるオーバーロードされたメンバー関数です。上記の関数とは、受け入れる引数のみが異なります。

オーバーロードされたメンバー関数のドキュメントが関数宣言または定義の前にない場合、オプションの引数を使用してオーバーロードされた関数の正しい宣言を指定する必要があります。もちろん、\overload コマンドがオーバーロードされたメンバー関数の直前にあり、オプションの引数が使用されている場合も、これがオーバーロードされた関数の正しい宣言である必要があります。

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

注1
このメンバーによってオーバーロードされる、以前にドキュメント化されたメンバーが実際に存在することを確認するのはあなたの責任です。Doxygenがドキュメントの順序を並べ替えるのを防ぐには、この場合 SORT_MEMBER_DOCSNO に設定する必要があります。
注2
コメントブロックには、\overload コマンドは1つしか存在できません。
class Overload_Test
{
public:
void drawRect(int,int,int,int);
void drawRect(const Rect &r);
};
void Overload_Test::drawRect(int x,int y,int w,int h) {}
void Overload_Test::drawRect(const Rect &r) {}
/*! \class Overload_Test
* \brief A short description.
*
* More text.
*/
/*! \fn void Overload_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 Overload_Test::drawRect(const Rect &r)
*/
Doxygenによって生成された対応するHTMLドキュメントはこちらをクリックしてください。

\package <name>

コメントブロックが <name> という名前の Java パッケージのドキュメントを含んでいることを示します。


\page <name> (title)

コメントブロックが、特定のクラス、ファイル、またはメンバーに直接関連しないドキュメントの一部を含んでいることを示します。HTMLジェネレーターは、ドキュメントを含むページを作成します。{\LaTeX} ジェネレーターは、「ページドキュメント」の章に新しいセクションを開始します。

/*! \page page1 A documentation page
\tableofcontents
Leading text.
\section sec An example section
This page contains the subsections \ref subsection1 and \ref subsection2.
For more info see page \ref page2.
\subsection subsection1 The first subsection
Text.
\subsection subsection2 The second subsection
More text.
*/
/*! \page page2 Another page
Even more info.
*/
Doxygenによって生成された対応するHTMLドキュメントはこちらをクリックしてください。
<name> 引数は、文字と数字の組み合わせで構成されます。<name> 引数で大文字(例:MYPAGE1)または大文字と小文字の混在(例:MyPage1)を使用したい場合は、CASE_SENSE_NAMESYES に設定する必要があります。ただし、これはファイルシステムが大文字と小文字を区別する場合にのみ推奨されます。そうでない場合(および移植性を高めるため)は、ページへのすべての参照で <name> にすべての小文字(例:mypage1)を使用する必要があります。
関連項目
セクション \section、セクション \subsection、およびセクション \ref

\private

コメントブロックでドキュメント化されたメンバーがプライベート、つまり同じクラス内の他のメンバーからのみアクセスされるべきであることを示します。

Doxygenは、オブジェクト指向言語のメンバーの保護レベルを自動的に検出することに注意してください。このコマンドは、言語が保護レベルの概念をネイティブにサポートしていない場合(例:C、PHP 4)にのみ使用することを意図しています。

C++の「private:」クラスマーカーと同様の方法でプライベートメンバーのセクションを開始するには、\privatesection を使用します。

関連項目
セクション \memberof\public\protected および \privatesection

\privatesection

C++の「private:」クラスマーカーと同様の方法でプライベートメンバーのセクションを開始します。コメントブロックでドキュメント化されたメンバーがプライベート、つまり同じクラス内の他のメンバーからのみアクセスされるべきであることを示します。

関連項目
セクション \memberof\public\protected および \private

\property (qualified property name)

コメントブロックがプロパティ(グローバルまたはクラスのメンバーとしてのいずれか)のドキュメントを含んでいることを示します。このコマンドは \fn\typedef、および \var と同等です。

関連項目
セクション \fn\typedef、および \var

\protected

コメントブロックでドキュメント化されたメンバーがプロテクテッド、つまり同じクラスまたは派生クラスの他のメンバーからのみアクセスされるべきであることを示します。

Doxygenは、オブジェクト指向言語のメンバーの保護レベルを自動的に検出することに注意してください。このコマンドは、言語が保護レベルの概念をネイティブにサポートしていない場合(例:C、PHP 4)にのみ使用することを意図しています。

C++の「protected:」クラスマーカーと同様の方法でプロテクテッドメンバーのセクションを開始するには、\protectedsection を使用します。

関連項目
セクション \memberof\public\private および \protectedsection

\protectedsection

C++の「protected:」クラスマーカーと同様の方法でプロテクテッドメンバーのセクションを開始します。コメントブロックでドキュメント化されたメンバーがプロテクテッド、つまり同じクラスまたは派生クラスの他のメンバーからのみアクセスされるべきであることを示します。

関連項目
セクション \memberof\public\private および \protected

\protocol <name> [<header-file>] [<header-name>]

コメントブロックが <name> という名前の Objective-C プロトコルのドキュメントを含んでいることを示します。引数は \class コマンドと同じです。

関連項目
セクション \class

\public

コメントブロックでドキュメント化されたメンバーがパブリック、つまり他のどのクラスまたは関数からもアクセスできることを示します。

Doxygenは、オブジェクト指向言語のメンバーの保護レベルを自動的に検出することに注意してください。このコマンドは、言語が保護レベルの概念をネイティブにサポートしていない場合(例:C、PHP 4)にのみ使用することを意図しています。

C++の「public:」クラスマーカーと同様の方法でパブリックメンバーのセクションを開始するには、\publicsection を使用します。

関連項目
セクション \memberof\protected\private および \publicsection

\publicsection

C++の「public:」クラスマーカーと同様の方法でパブリックメンバーのセクションを開始します。コメントブロックでドキュメント化されたメンバーがパブリック、つまり他のどのクラスまたは関数からもアクセスできることを示します。

関連項目
セクション \memberof\protected\private および \public

\pure

コメントブロックでドキュメント化されたメンバーが純粋仮想、つまり抽象であり、それに関連付けられた実装がないことを示します。

このコマンドは、言語が純粋仮想メソッドの概念をネイティブにサポートしていない場合(例:C、PHP 4)にのみ使用することを意図しています。


\relates <name>

このコマンドは、非メンバー関数 <name> のドキュメントで使用できます。これにより、関数はクラスドキュメントの「関連関数」セクションに配置されます。このコマンドは、特定のクラスに強く結合している非フレンド関数をドキュメント化するのに役立ちます。これにより、ファイルをドキュメント化する必要がなくなり、関数にのみ機能します。

/*!
* 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ドキュメントはこちらをクリックしてください。

\related <name>

\relates と同等


\relatesalso <name>

このコマンドは、非メンバー関数 <name> のドキュメントで使用できます。これにより、関数はクラスドキュメントの「関連関数」セクションに配置されるだけでなく、通常のファイルドキュメントの場所にも残されます。このコマンドは、特定のクラスに強く結合している非フレンド関数をドキュメント化するのに役立ちます。関数にのみ機能します。


\relatedalso <name>

\relatesalso と同等


\showinitializer

デフォルトでは、define の値と変数の初期化子は、30行未満の場合にのみ表示されます。define または変数のコメントブロックにこのコマンドを配置すると、初期化子は無条件に表示されます。初期化行の最大数は、設定パラメータ MAX_INITIALIZER_LINES によって変更できます。デフォルト値は30です。

関連項目
セクション \hideinitializer

\static

コメントブロックでドキュメント化されたメンバーが静的、つまりクラスのインスタンスではなく、クラス自体に対して機能することを示します。

このコマンドは、言語が静的メソッドの概念をネイティブにサポートしていない場合(例:C)にのみ使用することを意図しています。


\struct <name> [<header-file>] [<header-name>]

コメントブロックが <name> という名前の構造体のドキュメントを含んでいることを示します。引数は \class コマンドの引数と同じです。

関連項目
セクション \class

\typedef (typedef declaration)

コメントブロックが typedef(グローバルまたはクラスのメンバーとしてのいずれか)のドキュメントを含んでいることを示します。このコマンドは \fn\property、および \var と同等です。

関連項目
セクション \fn\property、および \var

\union <name> [<header-file>] [<header-name>]

コメントブロックが <name> という名前の共用体のドキュメントを含んでいることを示します。引数は \class コマンドの引数と同じです。

関連項目
セクション \class

\var (variable declaration)

コメントブロックが変数または列挙値(グローバルまたはクラスのメンバーとしてのいずれか)のドキュメントを含んでいることを示します。このコマンドは \fn\property、および \typedef と同等です。

PHPの場合、変数の型を指定することもできます。構文は phpDocumentor に似ていますが、説明は次の行から開始する必要があります。すなわち、

@var  datatype $varname
Description
関連項目
セクション \fn\property、および \typedef

\vhdlflow [(title for the flow chart)]

これはVHDL固有のコマンドで、プロセスのドキュメントに配置することで、プロセスのロジックのフローチャートを生成できます。オプションでフローチャートのタイトルを指定できます。

現在、フローチャートはHTML出力にのみ表示されます。

\weakgroup <name> [(title)]

\addtogroup と全く同じように使用できますが、グループ化定義の競合解決に関しては優先度が低くなります。

関連項目
ページ Grouping およびセクション \addtogroup

--- セクションインジケータ ---


\attention { attention text }

注意を促すメッセージを入力できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\attentionコマンドは1つの段落に結合されます。\attentionコマンドは、空白行または他のセクションコマンドが見つかると終了します。


\author { 著者リスト }

1人以上の著者名を入力できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\authorコマンドは1つの段落に結合されます。各著者の記述は新しい行から開始されます。あるいは、1つの\authorコマンドで複数の著者を記述することもできます。\authorコマンドは、空白行または他のセクションコマンドが見つかると終了します。

/*!
* \brief かなり良いクラスです。
* \details このクラスは、いくつかのセクションコマンドをデモンストレーションするために使用されます。
* \author John Doe
* \author Jan Doe
* \version 4.1a
* \date 1990-2011
* \pre 最初にシステムを初期化してください。
* \bug このクラスのオブジェクトを削除する際に、すべてのメモリが解放されるわけではありません。
* \warning 不適切な使用はアプリケーションをクラッシュさせる可能性があります
* \copyright GNU Public License。
*/
class SomeNiceClass {};
Doxygenによって生成される対応するHTMLドキュメントについては、こちらをクリックしてください。

\authors { 著者リスト }

\authorと同じです。


\brief { 簡単な説明 }

簡単な説明として機能する段落を開始します。クラスやファイルの場合、簡単な説明はリストやドキュメントページの冒頭で使用されます。クラスおよびファイルのメンバーの場合、簡単な説明はメンバーの宣言箇所に配置され、詳細な説明の前に付加されます。簡単な説明は複数行にわたる場合があります(ただし、簡潔に保つことをお勧めします!)。簡単な説明は、空白行または別のセクションコマンドが見つかると終了します。複数の\briefコマンドが存在する場合、それらは結合されます。例については、セクション\authorを参照してください。

\shortの同意語です。


\bug { バグの説明 }

1つ以上のバグを報告できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\bugコマンドは1つの段落に結合されます。各バグの説明は新しい行から開始されます。あるいは、1つの\bugコマンドで複数のバグを記述することもできます。\bugコマンドは、空白行または他のセクションコマンドが見つかると終了します。例については、セクション\authorを参照してください。

この説明は、別途バグリストにも項目を追加し、その2つの説明は相互参照されます。バグリストの各項目には、その項目の出典を示すヘッダーが前に付加されます。

バグリストとそれに対応するエントリは、GENERATE_BUGLISTNOに設定することで無効にできます。


\cond [(セクションラベル)]

対応する\endcondコマンドで終わる条件付きセクションを開始します。このコマンドは通常、別のコメントブロック内にあります。このコマンドのペアの主な目的は、ファイルの特定の部分を処理から(条件付きで)除外することです(Doxygenの古いバージョンでは、Cプリプロセッサコマンドを使用することによってのみこれが可能でした)。

\cond\endcond間のセクションは、そのセクションラベルをENABLED_SECTIONS設定オプションに追加することで含めることができます。セクションラベルが省略された場合、そのセクションは無条件に処理から除外されます。セクションラベルは、セクション名、丸括弧、&& (AND)、|| (OR)、および ! (NOT) で構築された論理式にすることができます。式を使用する場合は、丸括弧で囲む必要があります。例:\cond (!LABEL1 && LABEL2)

コメントブロック内の条件付きセクションには、\if ... \endifブロックを使用する必要があります。\condを使用し、条件が満たされない場合、現在のコメントブロックは終了し、対応する\endcondまでのすべてが削除され、そこに新しいコマンドブロックが開始されます。

条件付きセクションはネストできます。この場合、ネストされたセクションは、それ自体とそれを囲むセクションが含まれている場合にのみ表示されます。

コマンドが実際に動作する例を以下に示します

/** An interface */
class Intf
{
  public:
    /** A method */
    virtual void func() = 0;

    /// @cond TEST

    /** A method used for testing */
    virtual void test() = 0;

    /// @endcond
};

/// @cond DEV
/*
 *  The implementation of the interface
 */
class Implementation : public Intf
{
  public:
    void func();

    /// @cond TEST
    void test();
    /// @endcond

    /// @cond
    /** This method is obsolete and does
     *  not show up in the documentation.
     */
    void obsolete();
    /// @endcond
};

/// @endcond

ENABLED_SECTIONSTESTまたはDEVが含まれているかどうかに応じて、出力は異なります。

関連項目
セクション \if\ifnot\else\elseif\endif\endcond、およびENABLED_SECTIONS
パースのタイミングにより、\condおよび\endcondコマンドはALIASESでは使用できません。

\copyright { 著作権の説明 }

エンティティの著作権を記述できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。例については、セクション\authorを参照してください。


\date { 日付の説明 }

1つ以上の日付を入力できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\dateコマンドは1つの段落に結合されます。各日付の記述は新しい行から開始されます。あるいは、1つの\dateコマンドで複数の日付を記述することもできます。\dateコマンドは、空白行または他のセクションコマンドが見つかると終了します。例については、セクション\authorを参照してください。


\showdate "<format>" [ <date_time> ]

指定された<format>と<date_time>に基づいて日付と時刻を表示します。<format>は、以下のトークンが特別な意味を持つ文字列です。

コード説明
%y世紀なしの年(ゼロ埋め10進数)。
%Y世紀ありの年(10進数)。
%m月(ゼロ埋め10進数)。
%-m月(10進数)。
%b月のロケール略称。
%B月のロケール正式名称。
%d日付(ゼロ埋め10進数)。
%-d日付(10進数)。
%u曜日(10進数、1-7)。月曜日が1。
%w曜日(10進数、0-6)。日曜日が0。
%a曜日のロケール略称。
%A曜日のロケール正式名称。
   
%H時間(24時間表示、ゼロ埋め10進数)。
%-H時間(24時間表示、10進数)。
%I時間(12時間表示、ゼロ埋め10進数)。
%-I時間(12時間表示、10進数)。
%M分(ゼロ埋め10進数)。
%-M分(10進数)。
%S秒(ゼロ埋め10進数)。
%-S秒(10進数)。
%pロケールの午前または午後に相当する記号。
   
%% %文字。

<format>は二重引用符で囲む必要があることに注意してください。

<date_time>が指定されている場合、以下の形式である必要があります

  • オプションのdate。ここでdate
    • 年の4桁
    • マイナス記号
    • 月の1桁または2桁
    • マイナス記号
    • 日の1桁または2桁
  • オプションのtime。ここでtime
    • 空白
    • 時間の1桁または2桁
    • コロン記号
    • 分の1桁または2桁
    • フォーマットに%Sまたは%-Sが含まれる場合
      • コロン記号
      • 秒の2桁

<date_time>が指定されていない場合は、現在の日付と時刻が使用されます。

例を挙げます

- \showdate "%A %d-%m-%Y" 2015-3-14
- \showdate "%a %d-%m-%y" 2015-3-14
- \showdate "%-m.%d%y" 2015-3-14
- \showdate "%A %d-%m-%Y %H:%M:%S" 2015-3-14 03:04:15
- \showdate "%A %d-%m-%Y %H:%M" 2015-3-14 03:04

OUTPUT_LANGUAGE=englishの場合、以下の結果になります

  • Saturday 14-03-2015
  • Sat 14-03-15
  • 3.1415
  • Saturday 14-03-15 03:04:15
  • Saturday 14-03-15 03:04

OUTPUT_LANGUAGE=dutchの場合、以下の結果になります

  • zaterdag 14-03-15
  • za 14-03-2015
  • 3.1415
  • zaterdag 14-03-15 03:04:15
  • zaterdag 14-03-15 03:04

\deprecated { 説明 }

このドキュメントブロックが非推奨のエンティティに属することを示す段落を開始します。代替案や予想される寿命などを記述するために使用できます。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\deprecatedコマンドは1つの段落に結合されます。各非推奨の説明は新しい行から開始されます。\deprecatedコマンドは、空白行または他のセクションコマンドが見つかると終了します。

この説明は、別途非推奨リストにも項目を追加し、その2つの説明は相互参照されます。非推奨リストの各項目には、その項目の出典を示すヘッダーが前に付加されます。

非推奨リストとそれに対応するエントリは、GENERATE_DEPRECATEDLISTNOに設定することで無効にできます。


\details { 詳細な説明 }

\briefが簡単な説明を開始するのと同様に、\detailsは詳細な説明を開始します。新しい段落(空白行)を開始することもでき、その場合、\detailsコマンドは必要ありません。


\noop ( 無視されるテキスト )

コマンドを含め、行末までのすべてのテキストは無視されます。このコマンドは、通常、ALIASESと組み合わせて、例えば他の処理ツールに存在する未サポートのコマンドを無視するために使用されます。


\raisewarning ( 警告として表示されるテキスト )

コマンドを除き、行末までのすべてのテキストは、ドキュメントの警告として文字通り表示されます。コマンドを含むテキストは出力から削除されます。このコマンドは、通常、ALIASESと組み合わせて、特定の警告を表示するために使用されます。

\raisewarning My specific warning

\warnNoDoc

\warnNoDoc{My specific warning}
と共に
ALIASES  = warnNoDoc="\raisewarning Missing documentation"
ALIASES += warnNoDoc{1}="\raisewarning Incomplete documentation: \1"
結果として
   ex_1.md:1: warning: My specific warning
   ex_1.md:3: warning: Missing documentation
   ex_1.md:5: warning: Incomplete documentation: My specific warning

\else

前の条件付きセクションが有効でなかった場合、条件付きセクションを開始します。前のセクションは、\if\ifnot、または\elseifコマンドで開始されている必要があります。

関連項目
セクション \if\ifnot\elseif\endif

\elseif (セクションラベル)

前のセクションが有効でなかった場合、条件付きドキュメントセクションを開始します。条件付きセクションはデフォルトで無効になっています。有効にするには、設定ファイルのENABLED_SECTIONSタグの後にセクションラベルを配置する必要があります。セクションラベルは、セクション名、丸括弧、&& (AND)、|| (OR)、および ! (NOT) で構築された論理式にすることができます。条件付きブロックはネストできます。ネストされたセクションは、すべての囲むセクションも有効になっている場合にのみ有効になります。

関連項目
セクション \if\ifnot\else\endif

\endcond

\condで開始された条件付きセクションを終了します。

関連項目
セクション \cond
パースのタイミングにより、\endcondおよび\condコマンドはALIASESでは使用できません。

\endif

\ifまたは\ifnotで開始された条件付きセクションを終了します。\ifまたは\ifnotごとに、ただ1つの対応する\endifが続く必要があります。

関連項目
セクション \if\ifnot\else\elseif

\exception <exception-object> { 例外の説明 }

名前が<exception-object>の例外オブジェクトの例外説明を開始し、その後に例外の説明が続きます。例外オブジェクトの存在はチェックされません。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\exceptionコマンドは1つの段落に結合されます。各例外の説明は新しい行から開始されます。\exceptionの説明は、空白行または他のセクションコマンドが見つかると終了します。例については、セクション\fnを参照してください。


\if (セクションラベル)

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

セクションラベルは、セクション名、丸括弧、&& (AND)、|| (OR)、および ! (NOT) で構築された論理式にすることができます。式を使用する場合は、丸括弧で囲む必要があります。例:\if (!LABEL1 && LABEL2)

条件付きブロックはネストできます。ネストされたセクションは、すべての囲むセクションも有効になっている場合にのみ有効になります。

\ifと対応する\endifは、同じコメントブロック内にある必要があります。条件付きブロックが複数のコメントブロックにまたがる必要がある場合は、\cond ... \endcondを使用する必要があります。

  /*! Unconditionally 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"

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

関連項目
セクション \endif\ifnot\else\elseif\cond\endcond、およびENABLED_SECTIONS

\ifnot (セクションラベル)

条件付きドキュメントセクションを開始します。このセクションは、対応する\endifコマンドで終了します。この条件付きセクションはデフォルトで有効になっています。無効にするには、設定ファイルのENABLED_SECTIONSタグの後にセクションラベルを配置する必要があります。セクションラベルは、セクション名、丸括弧、&& (AND)、|| (OR)、および ! (NOT) で構築された論理式にすることができます。

関連項目
セクション \endif\if\else、および\elseif\cond\endcond、およびENABLED_SECTIONS

\important { 重要なテキスト }

重要なメッセージを入力できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\importantコマンドは1つの段落に結合されます。\importantコマンドは、空白行または他のセクションコマンドが見つかると終了します。


\invariant { 不変条件の説明 }

エンティティの不変条件を記述できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\invariantコマンドは1つの段落に結合されます。各不変条件の説明は新しい行から開始されます。あるいは、1つの\invariantコマンドで複数の不変条件を記述することもできます。\invariantコマンドは、空白行または他のセクションコマンドが見つかると終了します。


\note { テキスト }

注釈を入力できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\noteコマンドは1つの段落に結合されます。各注釈の記述は新しい行から開始されます。あるいは、1つの\noteコマンドで複数の注釈を記述することもできます。\noteコマンドは、空白行または他のセクションコマンドが見つかると終了します。例については、セクション\parを参照してください。


\par [(段落タイトル)] { 段落 }

段落タイトルが指定されている場合、このコマンドはユーザー定義の見出しを持つ段落を開始します。見出しは行末まで続きます。コマンドに続く段落はインデントされます。

段落タイトルが指定されていない場合、このコマンドは新しい段落を開始します。これは、他の段落コマンド(\param\warningなど)内でも、そのコマンドを終了することなく機能します。

段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。\parコマンドは、空白行または他のセクションコマンドが見つかると終了します。

/*! \class Par_Test
* 通常のテキスト。
*
* \par ユーザー定義の段落
* 段落の内容。
*
* \par
* 同じ見出しの下の新しい段落。
*
* \note
* この注釈は2つの段落で構成されています。
* これが最初の段落です。
*
* \par
* そして、これが2番目の段落です。
*
* その他の通常のテキスト。
*/
class Par_Test {};
Doxygenによって生成される対応するHTMLドキュメントについては、こちらをクリックしてください。

\param[<dir>] <parameter-name> { パラメータの説明 }

名前が<parameter-name>の関数パラメータのパラメータ説明を開始し、その後にパラメータの説明が続きます。パラメータの存在がチェックされ、この(または他の)パラメータのドキュメントが欠落しているか、関数宣言または定義に存在しない場合は警告が表示されます。

\paramコマンドには、パラメータの方向を指定するオプションの属性<dir>があります。可能な値は「[in]」、「[out]」、「[in,out]」です。この記述の角括弧に注意してください。双方向の値の場合、「in」と「out」の方向は任意の順序で指定でき、まとめて記述するか、コンマ(,)またはスペースで区切ることができます。つまり、例えば「[outin]」や「[in out]」も有効な値です。コマンドと<dir>の間に空白を置くことも可能であることに注意してください。パラメータが入力と出力の両方である場合、「[in,out]」が属性として使用されます。関数memcpyの例を以下に示します。

/*!
* ソースメモリ領域から宛先メモリ領域へバイトをコピーします、
* ただし、両方の領域が重なってはなりません。
* @param[out] dest コピー先のメモリ領域。
* @param[in] src コピー元のメモリ領域。
* @param[in] n コピーするバイト数。
*/
void memcpy(void *dest, const void *src, size_t n);

パラメータの説明は、特別な内部構造を持たない段落です。すべての視覚的強調コマンドは段落内で使用できます。

複数の連続した\paramコマンドは1つの段落に結合されます。各パラメータの説明は新しい行から開始されます。\paramの説明は、空白行または他のセクションコマンドが見つかると終了します。例については、セクション\fnを参照してください。

単一の\paramコマンドでカンマ区切りのリストを使用して複数のパラメータをドキュメント化することもできることに注意してください。例を以下に示します。

/** 位置を設定します。
* @param x,y,z 3D空間における位置の座標。
*/
void setPosition(double x,double y,double z,double t)
{
}

PHPの場合、パラメータに許容される型(パイプ記号で区切る場合は複数の型)を指定することもできることに注意してください(これは定義の一部ではないため)。構文はphpDocumentorと同じです。すなわち

@param  datatype1|datatype2 $paramname description

\parblock

単一の段落を引数として期待するコマンド(\par\param\warningなど)の場合、\parblockコマンドを使用すると、複数の段落にわたる説明を開始でき、それは\endparblockで終了します。

/** Example of a param command with a description consisting of two paragraphs
 *  \param p
 *  \parblock
 *  First paragraph of the param description.
 *
 *  Second paragraph of the param description.
 *  \endparblock
 *  Rest of the comment block continues.
 */

\parblockコマンドは、\paramの最初の引数の直後に現れることもできることに注意してください。


\endparblock

これは、\parblockで開始された段落のブロックを終了します。


\tparam <template-parameter-name> { 説明 }

名前が<template-parameter-name>のクラスまたは関数テンプレートパラメータのテンプレートパラメータを開始し、その後にテンプレートパラメータの説明が続きます。

その他は\paramに類似しています。


\post { 事後条件の説明 }

エンティティの事後条件を記述できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\postコマンドは1つの段落に結合されます。各事後条件は新しい行から開始されます。あるいは、1つの\postコマンドで複数の事後条件を記述することもできます。\postコマンドは、空白行または他のセクションコマンドが見つかると終了します。


\pre { 事前条件の説明 }

エンティティの事前条件を記述できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\preコマンドは1つの段落に結合されます。各事前条件は新しい行から開始されます。あるいは、1つの\preコマンドで複数の事前条件を記述することもできます。\preコマンドは、空白行または他のセクションコマンドが見つかると終了します。


\remark { 備考テキスト }

1つ以上の備考を入力できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\remarkコマンドは1つの段落に結合されます。各備考は新しい行から開始されます。あるいは、1つの\remarkコマンドで複数の備考を記述することもできます。\remarkコマンドは、空白行または他のセクションコマンドが見つかると終了します。


\remarks { 備考テキスト }

\remarkと同じです。


\result { 結果値の説明 }

\returnと同じです。


\return { 戻り値の説明 }

関数の戻り値の説明を開始します。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\returnコマンドは1つの段落に結合されます。\returnの説明は、空白行または他のセクションコマンドが見つかると終了します。例については、セクション\fnを参照してください。


\returns { 戻り値の説明 }

\returnと同じです。


\retval <return value> { 説明 }

名前が<return value>の関数の戻り値の説明を開始し、その後に戻り値の説明が続きます。説明を構成する段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\retvalコマンドは1つの段落に結合されます。各戻り値の説明は新しい行から開始されます。\retvalの説明は、空白行または他のセクションコマンドが見つかると終了します。


\sa { 参照 }

クラス、関数、メソッド、変数、ファイル、またはURLへの1つ以上の相互参照を指定できる段落を開始します。::または#で結合された2つの名前は、クラスとそのメンバーのいずれかを指すものと理解されます。メソッド名の後に引数型の括弧付きリストを含めることで、複数のオーバーロードされたメソッドまたはコンストラクタのいずれかを選択できます。

\seeの同意語です。

関連項目
オブジェクトへのリンクを作成する方法については、セクションautolinkを参照してください。

\see { 参照 }

\saと同じです。Javadocとの互換性のために導入されました。


\short { 短い説明 }

\briefと同じです。


\since { テキスト }

このコマンドは、エンティティがいつから(バージョンまたは時刻)利用可能であるかを指定するために使用できます。\sinceに続く段落には、特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。\sinceの説明は、空白行または他のセクションコマンドが見つかると終了します。


\test { テストケースを記述する段落 }

1つ以上のテストケースを記述できる段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\testコマンドは1つの段落に結合されます。各テストケースの説明は新しい行から開始されます。あるいは、1つの\testコマンドで複数のテストケースを記述することもできます。\testコマンドは、空白行または他のセクションコマンドが見つかると終了します。

この説明は、別途テストリストにも項目を追加し、その2つの説明は相互参照されます。テストリストの各項目には、その項目の出典を示すヘッダーが前に付加されます。

テストリストとそれに対応するエントリは、GENERATE_TESTLISTNOに設定することで無効にできます。


\throw <exception-object> { 例外の説明 }

\exceptionの同意語です。

コマンド\throwsは、このコマンドの同意語です。
関連項目
セクション \exception

\throws <exception-object> { 例外の説明 }

\throwと同じです。


\todo { すべきことを記述する段落 }

1つ以上のTODO項目が記述される段落を開始します。この段落はインデントされます。段落のテキストに特別な内部構造はありません。すべての視覚的強調コマンドは段落内で使用できます。複数の連続した\todoコマンドは1つの段落に結合されます。各TODOの説明は新しい行から開始されます。あるいは、1つの\todoコマンドで複数のTODO説明を記述することもできます。\todoコマンドは、空白行または他のセクションコマンドが見つかると終了します。

この説明は、別途Todoリストにも項目を追加し、その2つの説明は相互参照されます。Todoリストの各項目には、その項目の出典を示すヘッダーが前に付加されます。

Todoリストとそれに対応するエントリは、GENERATE_TODOLISTNOに設定することで無効にできます。


\version { バージョン番号 }

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


\warning { 警告メッセージ }

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


\xrefitem <key> "heading" "list title" { テキスト }

このコマンドは、\todo\bugなどのコマンドの一般化です。これは、発生箇所と生成される関連ページとの間で自動的に相互参照されるユーザー定義のテキストセクションを作成するために使用できます。関連ページでは、同じタイプのすべてのセクションが収集されます。

最初の引数<key>は、セクションのタイプを一意に表す識別子です。2番目の引数は、4番目の引数として渡されたテキストが置かれるセクションの見出しを表す引用符で囲まれた文字列です。3番目の引数(リストタイトル)は、同じキーを持つすべての項目を含む関連ページのタイトルとして使用されます。2番目と3番目の文字列引数には改行を含めることはできません。キー"todo""test""bug"、および"deprecated"は事前に定義されています。

\xrefitemコマンドの使用方法とその効果を理解するには、todoリストを検討してください。これは(英語出力の場合)、コマンドのエイリアスと見なすことができます。

\xrefitem todo "Todo" "Todo List" 

各セクションでコマンドの最初の3つのパラメータを繰り返すのは非常に手間がかかり、エラーが発生しやすいため、このコマンドは設定ファイルのALIASESオプションと組み合わせて使用することを意図しています。例えば、新しいコマンド\reminderを定義するには、設定ファイルに以下の行を追加する必要があります。

ALIASES += "reminder=\xrefitem reminders \"Reminder\" \"Reminders\"" 

\xrefitemコマンドの2番目と3番目の引数にエスケープされた引用符が使用されていることに注意してください。

パラメータ「(heading)」が空文字列の場合、見出しは生成されません。これは、例えば\pageコマンドと組み合わせて使用する場合に役立ちます。

/** @page my_errors My Errors
 *  @brief Errors page
 *
 *  Errors page contents.
 */

/** \error ERROR 101: in case a file can not be opened.
    Check about file system read/write access. */
#define MY_ERR_CANNOT_OPEN_FILE                   101

/** \error ERROR 102: in case a file can not be closed.
    Check about file system read/write access. */
#define MY_ERR_CANNOT_CLOSE_FILE                  102

\errorを次のように定義した場合

ALIASES += "error=\xrefitem my_errors \"\" \"\"" 

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


\addindex (テキスト)

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


\anchor <word>

このコマンドは、ドキュメント内に不可視の、名前付きアンカーを配置します。これには\refコマンドで参照できます。

関連項目
セクション \ref

\cite['{'[option]'}'] <label>

テキスト内および参考文献リストに参考文献を追加します。<label> は、CITE_BIB_FILES にリストされている .bib ファイルのいずれかで見つけることができる有効な BibTeX ラベルである必要があります。{\LaTeX} 出力の場合、テキスト内の参照の書式設定は LATEX_BIB_STYLE で構成できます。その他の出力形式では、固定の表現が使用されます。このコマンドを使用するには、検索パスに bibtex ツールが存在する必要があることに注意してください。

いくつかのオプションが可能です。

  • numbershortauthoryear。これらのオプションは相互に排他的であり、これらが何も指定されていない場合は number が仮定されます。
    • number は数値参照を作成します。
    • shortauthor は最初の著者の姓のみが与えられ、複数の著者が存在する場合は「et al.」というテキストが追加されます。
    • year は発行年が言及されます(bibtexファイルで指定されている場合)。
  • nopar は、(角)括弧は追加されません。
  • nocite は、参考文献の引用へのリンクは作成されません(そして、この項目に基づいて参考文献に参照は追加されません)。

\endlink

このコマンドは、\link コマンドで開始されたリンクを終了します。

関連項目
セクション \link

\link <link-object>

Doxygenによって自動生成されるリンクは、常に参照先のオブジェクト名をリンクテキストとして持ちます。

\link コマンドは、ユーザーが指定したリンクテキストでオブジェクト(ファイル、クラス、またはメンバー)へのリンクを作成するために使用できます。リンクコマンドは \endlink コマンドで終了する必要があります。\link\endlink コマンドの間のすべてのテキストは、\link の最初の引数として指定された <link-object> へのリンクのテキストとして機能します。

関連項目
自動生成されるリンクと有効なリンクオブジェクトの詳細については、セクション autolink を参照してください。

\ref <name> ["(text)"]

名前付きシンボル、ファイル、セクション、サブセクション、ページ、またはアンカーへの参照を作成します。

HTMLドキュメントの場合、参照コマンドはセクションへのリンクを生成します。セクションまたはサブセクションの場合、セクションのタイトルがリンクのテキストとして使用されます。アンカーの場合、オプションの引用符で囲まれたテキストが使用されるか、テキストが指定されていない場合は <name> が使用されます。

<name> にスペースが含まれる場合(例えば、スペースを含むファイル名を参照する場合)は、<name> を二重引用符で囲む必要があります(例: "my file.md")。

{\LaTeX} ドキュメントの場合、PDF_HYPERLINKS オプションが NO に設定されていない限り、参照コマンドは同じになります。この場合、セクションのセクションタイトル、または <name> がアンカーを参照する場合はそれに続くページ番号のテキストが生成されます。

関連項目
\ref コマンドの例については、セクション \page を参照してください。

\refitem <name>

\ref コマンドと同様に、このコマンドは名前付きセクションへの参照を作成しますが、この参照は \secreflist で開始され \endsecreflist で終了するリストに表示されます。そのようなリストの例は、ページの上部で見ることができます。


\secreflist

名前付きセクションへのリンクを持つ、\refitem で作成された項目のインデックスリストを開始します。


\endsecreflist

\secreflist で開始されたインデックスリストを終了します。


\subpage <name> ["(text)"]

このコマンドは、ページの階層を作成するために使用できます。\defgroup および \ingroup コマンドを使用しても同じ構造を作成できますが、ページの場合、\subpage コマンドの方が便利な場合が多くあります。メインページ(\mainpage を参照)は、通常、階層のルートになります。

このコマンドは、オプションのリンクテキストが2番目の引数で指定された <name> というラベルのページへの参照を作成するという点で、\ref と同様に動作します。

\ref コマンドとは異なり、ページにのみ機能し、ページ間に親子関係を作成します。ここで、子ページ(またはサブページ)はラベル <name> で識別されます。

複数のページを作成せずに構造を追加したい場合は、\section および \subsection コマンドを参照してください。

各ページは他の1つのページのサブページにしかなれません。また、循環参照は許可されません。つまり、ページ階層はツリー構造である必要があります。

例を挙げます

/*! \mainpage A simple manual

Some general info.

This manual is divided in the following sections:
- \subpage intro
- \subpage advanced "Advanced usage"
*/

//-----------------------------------------------------------

/*! \page intro Introduction
This page introduces the user to the topic.
Now you can proceed to the \ref advanced "advanced section".
*/

//-----------------------------------------------------------

/*! \page advanced Advanced Usage
This page is for advanced users.
Make sure you have first read \ref intro "the introduction".
*/

\tableofcontents['{'[option[:level]][,option[:level]]*'}']

ページの先頭に目次を作成し、ページ内のすべてのセクションとサブセクションをリストします。optionHTMLLaTeXXML、または DocBook のいずれかです。level が指定されている場合、これは表示される最大ネストレベルを意味します。level の値は 1..6 の範囲である必要があり、この範囲外の値は 6 とみなされます。level が指定されていない場合、level は 6 に設定されます(すべて表示)。option が指定されていない場合、\tableofcontents は、option HTMLXML のみが指定されたかのように動作します。1ページに複数の \tableofcontents コマンドがある場合、option(s) はすでに指定されている option(s) に追加して使用されますが、option の最後の level のみが有効です。

警告
このコマンドは、関連するページドキュメント内でのみ機能し、他のドキュメントブロックでは機能せず、指定された出力でのみ効果があります!

\section <section-name> (section title)

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

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

\subsection <subsection-name> (subsection title)

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

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

\subsubsection <subsubsection-name> (subsubsection title)

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

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

\paragraph <paragraph-name> (paragraph title)

<paragraph-name> という名前の名前付き段落を作成します。段落のタイトルは、\paragraph コマンドの2番目の引数として指定する必要があります。

警告
このコマンドは、関連するページドキュメントブロックのサブサブセクション内でのみ機能し、他のドキュメントブロックでは機能しません

\subparagraph <subparagraph-name> (subparagraph title)

<subparagraph-name> という名前の名前付き副段落を作成します。副段落のタイトルは、\subparagraph コマンドの2番目の引数として指定する必要があります。

警告
このコマンドは、関連するページドキュメントブロックの段落内でのみ機能し、他のドキュメントブロックでは機能しません

\subsubparagraph <subsubparagraph-name> (subsubparagraph title)

<subsubparagraph-name> という名前の名前付き副副段落を作成します。副副段落のタイトルは、\subsubparagraph コマンドの2番目の引数として指定する必要があります。

警告
このコマンドは、関連するページドキュメントブロックの副段落内でのみ機能し、他のドキュメントブロックでは機能しません

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


\dontinclude['{lineno}'] <file-name>

このコマンドは、ソースファイルをドキュメントに逐語的に含めることなく(\include コマンドのように)解析するために使用できます。これは、ソースファイルを小さな部分に分割し、その間にドキュメントを追加したい場合に便利です。ソースファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。

必要に応じて、オプション lineno を追加して、インクルードされたコードの行番号を有効にすることができます。

オプション strip を追加すると、STRIP_CODE_COMMENTS の設定を上書きして、インクルードされたコードから特殊なコメントを常に非表示にできます。または、オプション nostrip を追加すると、特殊なコメントを常に表示できます。

コードフラグメント内のクラスおよびメンバーの宣言と定義は、\dontinclude コマンドを含むコメントブロックの解析中に「記憶」されます。

ソースファイルの行ごとの説明には、\line\skip\skipline、および \until コマンドを使用して、例の1行または複数行を表示できます。これらのコマンドには内部ポインタが使用されます。\dontinclude コマンドは、ポインタを例の最初の行に設定します。

/*! A test class. */
class Include_Test
{
public:
/// a member function
void example();
};
/*! \page pag_example
* \dontinclude include_test.cpp
* main関数はこのように始まります
* \skip main
* \until {
* まず、Include_Test クラスのオブジェクト \c t を作成します。
* \skipline Include_Test
* 次に、example メンバー関数を呼び出します
* \line example
* その後、私たちの小さなテストルーチンは終了します。
* \line }
*/
例のファイル include_test.cpp は次のようになります。
void main()
{
Include_Test t;
t.example();
}
Doxygen によって生成される対応するHTMLドキュメントはこちらをクリックしてください。
関連項目
セクション \line, \skip, \skipline, \until, および \include

\include['{'option'}'] <file-name>

このコマンドは、ソースファイルをコードブロックとしてインクルードするために使用できます。このコマンドは、インクルードファイルの名前を引数として取ります。ソースファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。

<file-name> 自体が EXAMPLE_PATH タグで指定された例のファイルのセットに対して一意でない場合、絶対パスの一部を含めて曖昧さを解消できます。

\include コマンドを使用することは、ファイルをドキュメントブロックに挿入し、\code および \endcode コマンドで囲むことと同じです。

\include コマンドの主な目的は、複数のソースファイルとヘッダーファイルで構成される例ブロックの場合にコードの重複を避けることです。

ソースファイルの行ごとの説明には、\dontinclude コマンドを \line\skip\skipline、および \until コマンドと組み合わせて使用します。

あるいは、ソースファイルの一部のみを含めるには \snippet コマンドを使用できます。これには、その部分がマークされている必要があります。

Doxygenの特殊コマンドはコードブロック内では機能しません。ただし、Cスタイルのコメントをコードブロック内にネストすることは許可されています。

The optionlineno または doc のいずれかであり、さらに local を指定することもできます。

  • option lineno は、必要に応じて、インクルードされたコードの行番号を有効にするために使用できます。
  • option doc は、ファイルをコードではなくドキュメントとして扱うために使用できます。
  • option local は、Doxygenがコードをグローバル名前空間ではなく、インクルードコマンドが表示されるクラスまたは名前空間にあるかのように解釈させるために使用できます。
  • option strip は、インクルードされたコードから特殊なコメントを常に非表示にするために使用でき、STRIP_CODE_COMMENTS の設定を上書きします。また、オプション nostrip は、特殊なコメントを常に表示するために使用できます。これらのオプションは、option doc と組み合わせた場合には効果がありません。

オプション doc を使用する場合、参照されたファイル内で見つかったすべてのセクションを特定の量だけ「レベルアップ」させるために指定できるオプション raise もあります。例:

  \include{doc,raise=1} file.dox

file.dox 内で見つかったレベル 1 の \section をレベル 2 の \subsection として、レベル 2 の \subsection をレベル 3 の \subsubsection として扱う、などです。同様に、Markdown の場合、# セクションは ## セクションとして扱われます。

さらに、インクルードされたセクションの各ラベルにプレフィックスを追加して、それらを一意に保つために使用できるオプション prefix があります。例:

  \include{doc,prefix=fn_} file.dox

file.dox 内で見つかった \section s1 を、まるで \section fn_s1 と指定されたかのように扱います。

インクルードされるドキュメントにはコメント記号を含めるべきではありません。なぜなら、それらもドキュメントに表示されるからです。
関連項目
セクション \example, \dontinclude, \verbatim, \includedoc, および \snippet

\includelineno <file-name>

このコマンドは廃止されており、後方互換性のためにまだサポートされています。\include{lineno} と同じように機能します。

関連項目
セクション \include{lineno}

\includedoc['{'option'}'] <file-name>

このコマンドは廃止されており、後方互換性のためにまだサポートされています。\include{doc} と同じように機能します。

option は、オプション doc を使用する際に \include で使用できる option と同じです。

関連項目
セクション \include{doc}

\line ( pattern )

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

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

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


\skip ( pattern )

このコマンドは、最後に \include または \dontinclude を使用してインクルードされた例を、指定されたパターンを含む行が見つかるまで行ごとに検索します。

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

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


\skipline ( pattern )

このコマンドは、最後に \include または \dontinclude を使用してインクルードされた例を、指定されたパターンを含む行が見つかるまで行ごとに検索します。その後、その行を出力に書き込みます。

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

コマンド
\skipline pattern
は以下と同等です。
\skip pattern
\line pattern

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


\snippet['{'option'}'] <file-name> ( block_id )

\include コマンドがソースコードとしてファイル全体をインクルードするために使用できるのに対し、このコマンドはソースファイルの一部のみを引用するために使用できます。<file-name> として this が使用された場合、現在のファイルがスニペットの取得元ファイルとして扱われます。

例えば、ドキュメントに次のコマンドを置くと、EXAMPLE_PATH で指定されたサブディレクトリにあるファイル example.cpp 内のスニペットを参照します。

  \snippet snippets/example.cpp Adding a resource

ファイル名の後に続くテキストは、スニペットの一意の識別子です。これは、上記の \snippet コマンドに対応する次の例に示すように、関連するスニペットファイル内で引用されたコードを区切るために使用されます。

QImage image(64, 64, QImage::Format_RGB32);
image.fill(qRgb(255, 160, 128));
//! [Adding a resource]
document->addResource(QTextDocument::ImageResource,
QUrl("mydata://image.png"), QVariant(image));
//! [Adding a resource]
...

ブロックマーカーを含む行は含まれないため、出力は次のようになることに注意してください。

document->addResource(QTextDocument::ImageResource,
QUrl("mydata://image.png"), QVariant(image));

また、[block_id] マーカーはソースファイルに正確に2回出現する必要があることにも注意してください。

optionlinenotrimleft、または doc のいずれかであり、さらに local を指定することもできます。

  • option lineno は、必要に応じて、インクルードされたコードの行番号を有効にするために使用できます。
  • option trimleft は、すべての行の先頭にある共通のスペースを削除するために使用できます(TAB_SIZE タグの設定も考慮に入れます)。
  • option doc は、ファイルをコードではなくドキュメントとして扱うために使用できます。
  • option local は、Doxygenがコードをグローバル名前空間ではなく、インクルードコマンドが表示されるクラスまたは名前空間にあるかのように解釈させるために使用できます。
  • option strip は、インクルードされたコードから特殊なコメントを常に非表示にするために使用でき、STRIP_CODE_COMMENTS の設定を上書きします。また、オプション nostrip は、特殊なコメントを常に表示するために使用できます。これらのオプションは、option doc と組み合わせた場合には効果がありません。

オプション doc を使用する場合、参照されたファイル内で見つかったすべてのセクションを特定の量だけ「レベルアップ」させるために指定できるオプション raise もあります。例:

 \snippet{doc,raise=1} file.dox XXX

スニペット内で見つかったレベル 1 の \section をレベル 2 の \subsection として、レベル 2 の \subsection をレベル 3 の \subsubsection として扱う、などです。同様に、Markdown の場合、# セクションは ## セクションとして扱われます。

さらに、インクルードされたセクションの各ラベルにプレフィックスを追加して、それらを一意に保つために使用できるオプション prefix があります。例:

 \include{doc,prefix=fn_} file.dox

file.dox 内で見つかった \section s1 を、まるで \section fn_s1 と指定されたかのように扱います。

インクルードされるドキュメントにはコメント記号を含めるべきではありません。なぜなら、それらもドキュメントに表示されるからです。

マーカーを必要としないソースファイルの一部を含める代替方法については、セクション \dontinclude を参照してください。


\snippetlineno <file-name> ( block_id )

このコマンドは廃止されており、後方互換性のためにまだサポートされています。\snippet{lineno} と同じように機能します。

関連項目
セクション \snippet{lineno}

\snippetdoc['{'option'}'] <file-name> ( block_id )

このコマンドは廃止されており、後方互換性のためにまだサポートされています。\snippet{doc} と同じように機能します。

option は、オプション doc を使用する際に \snippet で使用できる option と同じです。

関連項目
セクション \snippet{doc} および \include{doc}

\until ( pattern )

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

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

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


\verbinclude <file-name>

このコマンドは、ファイル <file-name> の内容をドキュメントに逐語的に含めます。このコマンドは、ファイルの内容をドキュメントに貼り付け、それを \verbatim および \endverbatim コマンドで囲むことと同じです。

Doxygenが検索すべきファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。


\htmlinclude['[block]'] <file-name>

このコマンドは、ファイル <file-name> の内容をHTMLドキュメントにそのまま含め、生成されるXML出力では <htmlonly> でタグ付けします。このコマンドは、ファイルの内容をドキュメントに貼り付け、それを \htmlonly および \endhtmlonly コマンドで囲むことと同じです。

通常、\htmlinclude で示されたファイルの内容はそのまま挿入されます。テーブルやリストのようにブロック範囲を持つHTMLフラグメントを <p>..</p> の外に表示したい場合、これは無効なHTMLを引き起こす可能性があります。\htmlinclude[block] を使用すると、Doxygenに現在の段落を終了させ、ファイルがインクルードされた後に再開させることができます。

Doxygenが検索すべきファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。

関連項目
セクション \htmlonly, \latexinclude, \rtfinclude, \maninclude, \docbookinclude および \xmlinclude

\latexinclude <file-name>

このコマンドは、ファイル <file-name> の内容を {\LaTeX} ドキュメントにそのまま含め、生成されるXML出力では <latexonly> でタグ付けします。このコマンドは、ファイルの内容をドキュメントに貼り付け、それを \latexonly および \endlatexonly コマンドで囲むことと同じです。

Doxygenが検索すべきファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。

関連項目
セクション \latexonly, \htmlinclude, \rtfinclude, \maninclude, \docbookinclude および \xmlinclude

\rtfinclude <file-name>

このコマンドは、ファイル <file-name> の内容をRTFドキュメントにそのまま含め、生成されるXML出力では <rtfonly> でタグ付けします。このコマンドは、ファイルの内容をドキュメントに貼り付け、それを \rtfonly および \endrtfonly コマンドで囲むことと同じです。

Doxygenが検索すべきファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。

関連項目
セクション \rtfonly, \htmlinclude, \latexinclude, \maninclude, \docbookinclude および \xmlinclude

\maninclude <file-name>

このコマンドは、ファイル <file-name> の内容をMANドキュメントにそのまま含め、生成されるXML出力では <manonly> でタグ付けします。このコマンドは、ファイルの内容をドキュメントに貼り付け、それを \manonly および \endmanonly コマンドで囲むことと同じです。

Doxygenが検索すべきファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。

関連項目
セクション \manonly, \htmlinclude, \latexinclude, \rtfinclude, \docbookinclude および \xmlinclude

\docbookinclude <file-name>

このコマンドは、ファイル <file-name> の内容をDocBookドキュメントにそのまま含め、生成されるXML出力では <docbookonly> でタグ付けします。このコマンドは、ファイルの内容をドキュメントに貼り付け、それを \docbookonly および \enddocbookonly コマンドで囲むことと同じです。

Doxygenが検索すべきファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。

関連項目
セクション \docbookonly, \htmlinclude, \latexinclude, \rtfinclude, \maninclude および \xmlinclude

\xmlinclude <file-name>

このコマンドは、ファイル <file-name> の内容をXMLドキュメントにそのまま含めます。このコマンドは、ファイルの内容をドキュメントに貼り付け、それを \xmlonly および \endxmlonly コマンドで囲むことと同じです。

Doxygenが検索すべきファイルまたはディレクトリは、Doxygenの設定ファイルの EXAMPLE_PATH タグを使用して指定できます。

関連項目
セクション \xmlonly, \htmlinclude, \latexinclude, \rtfinclude, \maninclude および \docbookinclude

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

\a <word>

引数 <word> をイタリック体で表示します。単語を強調するためにこのコマンドを使用します。本文中でメンバー引数を参照するためにこのコマンドを使用します。

  ... the \a x and \a y coordinates are used to ...
これは次のテキストになります。

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

\e および \em と同等です。複数の単語を強調するには <em>multiple words</em> を使用します。


\arg { item-description }

このコマンドは、最初の空白行または別の \arg が現れるまで続く1つの引数を受け取ります。このコマンドは、ネストされていない単純な引数リストを生成するために使用できます。各引数は \arg コマンドで開始する必要があります。

入力すると
  \arg \c AlignLeft left alignment.
  \arg \c AlignCenter center alignment.
  \arg \c AlignRight right alignment

  No other types of alignment are supported.
次のテキストになります。

  • AlignLeft 左揃え。
  • AlignCenter 中央揃え。
  • AlignRight 右揃え。

他の種類の配置はサポートされていません。
ネストされたリストには、HTMLコマンドを使用する必要があります。

\li と同等です。


\b <word>

引数 <word> を太字フォントで表示します。<b>word</b> と同等です。複数の単語を太字にするには <b>multiple words</b> を使用します。


\c <word>

引数 <word> をタイプライターフォントで表示します。コードの単語を参照するためにこれを使用します。<tt>word</tt> と同等です。

入力すると
     ... This function returns \c void and not \c int ...
次のテキストになります。

... This function returns void and not int ...

\p と同等です。タイプライターフォントで複数の単語を表示するには <tt>multiple words</tt> を使用します。


\code['{'<word>'}']

コードブロックを開始します。コードブロックは通常のテキストとは異なる扱いを受けます。ソースコードとして解釈されます。クラス名、メンバー名、その他の文書化されたエンティティは、自動的にドキュメントへのリンクに置き換えられます。

デフォルトでは、構文強調表示に適用される言語は、\code ブロックが見つかった場所に基づきます。例えば、Pythonファイルの一部である場合、Python構文に従って構文強調表示が行われます。

文脈からどの言語が意図されているかが不明な場合(例えば、コメントが .txt または .markdown ファイルにある場合)、コードブロックの後にDoxygenがその言語に関連付けられている典型的なファイル拡張子を中括弧で囲むことにより、言語を明示的に指定することもできます。例を挙げます:

  \code{.py}
  class Python:
     pass
  \endcode

  \code{.cpp}
  class Cpp {};
  \endcode

コードブロックの内容がDoxygenが解析できない言語である場合、Doxygenは出力をそのまま表示します。これを明示的にするには、.unparsed を使用するか、Doxygenがサポートしない他の拡張子(例:)を付けることができます。

  \code{.unparsed}
  Show this as-is please
  \endcode

  \code{.sh}
  echo "This is a shell script"
  \endcode
関連項目
セクション \endcode および セクション \verbatim

\copydoc <link-object>

<link-object> で指定されたオブジェクトからドキュメントブロックをコピーし、コマンドの位置に貼り付けます。このコマンドは、ドキュメントブロックが重複してしまうのを避けるのに役立ちます。また、継承されたメンバーのドキュメントを拡張するためにも使用できます。

リンクオブジェクトは、メンバー(クラス、ファイル、またはグループの)、クラス、名前空間、グループ、ページ、またはファイル(この順序でチェックされます)を指すことができます。指されているオブジェクトがメンバー(関数、変数、typedefなど)である場合、コピーが機能するためには、それを含む複合体(クラス、ファイル、またはグループ)も文書化されている必要があることに注意してください。

例えば、クラスのメンバーのドキュメントをコピーするには、ドキュメントに次のように記述できます。

  /*! @copydoc MyClass::myfunction()
   *  More documentation.
   */

メンバーがオーバーロードされている場合は、次のように引数型を明示的に(スペースなしで!)指定する必要があります。

  //! @copydoc MyClass::myfunction(type1,type2)

修飾名は、ドキュメントブロックが見つかるコンテキストでそれらが必要な場合にのみ必要です。

\copydoc コマンドは再帰的に使用できますが、\copydoc 関係におけるサイクルは中断され、エラーとしてフラグが立てられます。

\copydoc foo() は、おおよそ次のようにすることと同等であることに注意してください。

  \brief \copybrief foo()
  \details \copydetails foo()

コメントブロックの概要部分または詳細部分のみをコピーする場合は、\copybrief および \copydetails を参照してください。


\copybrief <link-object>

\copydoc と同様に機能しますが、詳細なドキュメントではなく、簡単な説明のみをコピーします。


\copydetails <link-object>

\copydoc と同様に機能しますが、簡単な説明ではなく、詳細なドキュメントのみをコピーします。


\docbookonly

生成されるDocBookドキュメントにのみ逐語的に含まれ、生成されるXML出力では <docbookonly> でタグ付けされるテキストブロックを開始します。このブロックは \enddocbookonly コマンドで終了します。

関連項目
セクション \manonly, \latexonly, \rtfonly, \xmlonly, \htmlonly および \docbookinclude

\dot ["caption"] [<sizeindication>=<size>]

dotグラフの有効な説明を含むべきテキストフラグメントを開始します。このテキストフラグメントは \enddot で終了します。Doxygenはテキストをdotに渡し、結果として得られる画像(およびイメージマップ)を出力に含めます。

最初の引数はオプションで、画像の下に表示されるキャプションを指定するために使用できます。この引数は、スペースが含まれていなくても引用符で囲んで指定する必要があります。引用符はキャプションが表示される前に削除されます。

2番目の引数もオプションで、画像の幅または高さを指定するために使用できます。可能性の説明については、\image コマンドの段落 Size indication を参照してください。

グラフのノードは、URL属性を使用することでクリック可能にできます。URL値内に \ref コマンドを使用することで、Doxygen内の項目に簡単にリンクできます。以下に例を示します。

このコマンドを使用するには、HAVE_DOTYES に設定されている必要があります。
Doxygenは一時ファイルを作成しますが、DOT_CLEANUP タグが NO に設定されていない限り、自動的に削除されます。
/*! class B */
class B {};
/*! class C */
class C {};
/*! \mainpage
*
* インラインdotグラフで表現されたクラス関係
* \dot
* digraph example {
* node [shape=record, fontname=Helvetica, fontsize=10];
* b [ label="class B" URL="\ref B"];
* c [ label="class C" URL="\ref C"];
* b -> c [ arrowhead="open", style="dashed" ];
* }
* \enddot
* 上記グラフのクラスはクリック可能であることに注意してください
* (HTML出力において)。
*/

\emoji "name"

このコマンドは、指定された名前の絵文字文字を生成します。

サポートされている名前は、GitHubでもサポートされており、https://gist.github.com/rxaviers/7360908 にリストされているものです。

名前はコロンの有無にかかわらず使用できます。つまり、\emoji smile\emoji :smile: と書くのと同じです。絵文字がサポートされていない場合、その名前はテキスト中にコロンで囲まれて表示されます。つまり、\emoji unsupported は出力で :unsupported: となります。Doxygenは警告メッセージも表示します。

詳細については、絵文字サポートページも参照してください。


\msc ["caption"] [<sizeindication>=<size>]

メッセージシーケンスチャートの有効な説明を含むべきテキストフラグメントを開始します。例については、https://www.mcternan.me.uk/mscgen/ を参照してください。テキストフラグメントは \endmsc で終了します。

最初の引数はオプションで、画像の下に表示されるキャプションを指定するために使用できます。この引数は、スペースが含まれていなくても引用符で囲んで指定する必要があります。引用符はキャプションが表示される前に削除されます。

2番目の引数もオプションで、画像の幅または高さを指定するために使用できます。可能性の説明については、\image コマンドの段落 Size indication を参照してください。

テキストフラグメントには、msc {...} ブロック内にあるメッセージシーケンスチャートの部分のみを含める必要があります(これは \mscfile とは異なります)。
mscgen は現在 Doxygen に組み込まれています。
Doxygenは一時ファイルを作成しますが、DOT_CLEANUP タグが NO に設定されていない限り、自動的に削除されます。

\msc コマンドの使用例を以下に示します。

/** Sender class. Can be used to send a command to the server.
* レシーバーは Ack() を呼び出すことによってコマンドを認識します。
* \msc
* Sender,Receiver;
* Sender->Receiver [label="Command()", URL="\ref Receiver::Command()"];
* Sender<-Receiver [label="Ack()", URL="\ref Ack()", ID="1"];
* \endmsc
*/
class Sender
{
public:
/** Acknowledgment from server */
void Ack(bool ok);
};
/** Receiver class. Can be used to receive and execute commands.
* コマンドの実行後、レシーバーは確認応答を送信します
* \msc
* Receiver,Sender;
* Receiver<-Sender [label="Command()", URL="\ref Command()"];
* Receiver->Sender [label="Ack()", URL="\ref Sender::Ack()", ID="1"];
* \endmsc
*/
class Receiver
{
public:
/** Executable a command on the server */
void Command(int commandId);
};
関連項目
セクション \mscfile

\startuml ['{'option[,option]'}'] ["caption"] [<sizeindication>=<size>]

PlantUML図の有効な説明を含むべきテキストフラグメントを開始します。例については、https://plantuml.com/ を参照してください。このテキストフラグメントは \enduml で終了します。

このコマンドを使用するには、JavaとPlantUMLのjarファイルをインストールする必要があります。{\LaTeX} でPlantUMLを使用する場合、さらにいくつかの jar ファイルをダウンロードする必要があります。詳細については、PlantUMLのドキュメントを参照してください。これは <engine>latex および math にも適用されます。PlantUMLファイルの場所は PLANTUML_JAR_PATH を使用して指定する必要があります。その他のjarファイルもこのディレクトリに存在する必要があります。
PlantUMLが png 形式のみをサポートし、Doxygenが一時的に eps 出力を必要とするため、{\LaTeX}<engine> ditaa を使用することはできません。

すべての図がPlantUML @startuml コマンドで作成できるわけではなく、別のPlantUML @start... コマンドが必要です。これは @start<engine> のようになり、現在サポートされている <engine> は以下の通りです: uml, bpm, wire, dot, ditaa, salt, math, latex, gantt, mindmap, wbs, yaml, creole, json, flow, board, git, hcl, regex, ebnf, files, chen および chronology。デフォルトでは <engine>uml です。<engine> はオプションとして指定できます。また、結果の画像を書き込むファイルもオプションで指定できます。詳細については、最初の(オプションの)引数の説明を参照してください。もちろん、指定できる <engine> は1つだけであり、ファイル名も1回しか指定できません。

最初の引数はオプションであり、Doxygenを実行する前にPlantUMLを前処理ステップとして実行する場合との互換性のためのものです。\startuml の後に画像ファイル名をオプションとして中括弧内に追加することもできます。すなわち、

  @startuml{myimage.png} "Image Caption" width=5cm
  Alice -> Bob : Hello
  @enduml

画像の名前が指定されている場合、Doxygenはその名前で画像を生成します。名前が指定されていない場合、Doxygenは自動的に名前を選択します。

2番目の引数はオプションで、画像の下に表示されるキャプションを指定するために使用できます。この引数は、スペースが含まれていなくても引用符で囲んで指定する必要があります。引用符はキャプションが表示される前に削除されます。

3番目の引数もオプションで、画像の幅または高さを指定するために使用できます。可能性の説明については、\image コマンドの段落 Size indication を参照してください。

Doxygenは、設計上、@startjson のようなPlantumlコマンドを直接サポートしていませんが、ユーザーがDoxygen設定ファイルに追加することでサポートを実現できます。
  ALIASES += startjson=@startuml{json}
  ALIASES += endjson=@enduml
Doxygenは一時ファイルを作成しますが、DOT_CLEANUP タグが NO に設定されていない限り、自動的に削除されます。

\startuml コマンドの使用例を以下に示します。

/** Sender class. Can be used to send a command to the server.
* レシーバーは Ack() を呼び出すことによってコマンドを認識します。
* \startuml
* Sender->Receiver : Command()
* Sender<--Receiver : Ack()
* \enduml
*/
class Sender
{
public:
/** Acknowledgment from server */
void Ack(bool ok);
};
/** Receiver class. Can be used to receive and execute commands.
* コマンドの実行後、レシーバーは確認応答を送信します
* \startuml
* Receiver<-Sender : Command()
* Receiver-->Sender : Ack()
* \enduml
*/
class Receiver
{
public:
/** Executable a command on the server */
void Command(int commandId);
};

\dotfile <file> ["caption"] [<sizeindication>=<size>]

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

最初の引数は画像のファイル名を指定します。Doxygenは、DOTFILE_DIRS タグの後に指定したパス(またはファイル)内でファイルを検索します。dotファイルが見つかった場合、それはdotツールの入力ファイルとして使用されます。結果の画像は正しい出力ディレクトリに配置されます。dotファイル名にスペースが含まれている場合は、二重引用符 ("...") で囲む必要があります。

2番目の引数はオプションで、画像の下に表示されるキャプションを指定するために使用できます。この引数は、スペースが含まれていなくても引用符で囲んで指定する必要があります。引用符はキャプションが表示される前に削除されます。

3番目の引数もオプションで、画像の幅または高さを指定するために使用できます。可能性の説明については、\image コマンドの段落 Size indication を参照してください。

このコマンドを使用するには、HAVE_DOTYES に設定されている必要があります。
関連項目
セクション \dot

\mscfile <file> ["caption"] [<sizeindication>=<size>]

mscgenによって <file> から生成された画像をドキュメントに挿入します。例については、https://www.mcternan.me.uk/mscgen/ を参照してください。

最初の引数は画像のファイル名を指定します。Doxygenは、MSCFILE_DIRS タグの後に指定したパス(またはファイル)内でファイルを検索します。mscファイルが見つかった場合、それは内蔵のmscgenツールの入力ファイルとして使用されます。結果の画像は正しい出力ディレクトリに配置されます。mscファイル名にスペースが含まれている場合は、二重引用符 ("...") で囲む必要があります。

2番目の引数はオプションで、画像の下に表示されるキャプションを指定するために使用できます。この引数は、スペースが含まれていなくても引用符で囲んで指定する必要があります。引用符はキャプションが表示される前に削除されます。

3番目の引数もオプションで、画像の幅または高さを指定するために使用できます。可能性の説明については、\image コマンドの段落 Size indication を参照してください。

テキストフラグメントには、シーケンスチャートのメッセージ部分だけでなく、開始の msc { と終了の } も含める必要があります(これは \msc とは異なります)。
関連項目
セクション \msc

\diafile <file> ["caption"] [<sizeindication>=<size>]

diaで <file> から作成された画像をドキュメントに挿入します。

最初の引数は画像のファイル名を指定します。Doxygenは、DIAFILE_DIRS タグの後に指定したパス(またはファイル)内でファイルを検索します。diaファイルが見つかった場合、それはdiaの入力ファイルとして使用されます。結果の画像は正しい出力ディレクトリに配置されます。diaファイル名にスペースが含まれている場合は、二重引用符 ("...") で囲む必要があります。

2番目の引数はオプションで、画像の下に表示されるキャプションを指定するために使用できます。この引数は、スペースが含まれていなくても引用符で囲んで指定する必要があります。引用符はキャプションが表示される前に削除されます。

3番目の引数もオプションで、画像の幅または高さを指定するために使用できます。可能性の説明については、\image コマンドの段落 Size indication を参照してください。


\doxyconfig <config_option>

このコマンドが処理される際に使用されているDoxygenの設定ファイルで使われている、設定オプション <config_option> の値を表示します。

このマニュアルを作成する際、以下のようにすると、
  ... Project name = \doxyconfig PROJECT_NAME ...
次のようになります。
... Project name = Doxygen ...

\e <word>

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

入力すると
  ... this is a \e really good example ...
次のテキストになります。

... this is a really good example ...

\a および \em と同等です。複数の単語を強調するには <em>multiple words</em> を使用します。


\em <word>

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

入力すると
  ... this is a \em really good example ...
次のテキストになります。

... this is a really good example ...

\a および \e と同等です。複数の単語を強調するには <em>multiple words</em> を使用します。


\endcode

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

関連項目
セクション \code

\enddocbookonly

\docbookonly コマンドで開始されたテキストブロックを終了します。

関連項目
セクション \docbookonly

\enddot

\dot で開始されたブロックを終了します。


\endmsc

\msc で開始されたブロックを終了します。


\enduml

\startuml で開始されたブロックを終了します。


\plantumlfile <file> ["caption"] [<sizeindication>=<size>]

PlantUMLで <file> から作成された画像をドキュメントに挿入します。

最初の引数は画像のファイル名を指定します。Doxygenは、PLANTUMLFILE_DIRS タグの後に指定したパス(またはファイル)内でファイルを検索します。plantumlファイルが見つかった場合、それはplantumlプログラムの入力ファイルとして使用されます。結果の画像は正しい出力ディレクトリに配置されます。plantumlファイル名にスペースが含まれている場合は、二重引用符 ("...") で囲む必要があります。

2番目の引数はオプションで、画像の下に表示されるキャプションを指定するために使用できます。この引数は、スペースが含まれていなくても引用符で囲んで指定する必要があります。引用符はキャプションが表示される前に削除されます。

3番目の引数もオプションで、画像の幅または高さを指定するために使用できます。可能性の説明については、\image コマンドの段落 Size indication を参照してください。


\endhtmlonly

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

関連項目
セクション \htmlonly

\endlatexonly

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

関連項目
セクション \latexonly

\endmanonly

\manonly コマンドで開始されたテキストブロックを終了します。

関連項目
セクション \manonly

\endrtfonly

\rtfonly コマンドで開始されたテキストブロックを終了します。

関連項目
セクション \rtfonly

\endverbatim

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

関連項目
セクション \verbatim

\endxmlonly

\xmlonly コマンドで開始されたテキストブロックを終了します。

関連項目
セクション \xmlonly

\f$

インテキスト数式の開始と終了を示します。

関連項目
例については、セクション formulas を参照してください。

\f(

インテキスト数式の開始を示しますが、\f$ とは異なり、{\LaTeX} で数式モードを明示的に開くことはありません。

関連項目
セクション \f) および セクション formulas

\f)

\f( で開始されたインテキスト数式の終了を示します。

関連項目
セクション \f( および セクション formulas

\f[

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

関連項目
セクション \f] および セクション formulas

\f]

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

関連項目
セクション \f[ および セクション formulas

\f{environment}{

特定の環境にある数式の開始を示します。

2番目の { はオプションであり、開閉する中括弧の数を同じにすることで、エディタ(Vim など)が適切な構文強調表示を行うのを助けるためだけに使用されます。
関連項目
セクション \f} および セクション formulas

\f}

特定の環境にある数式の終了を示します。

関連項目
セクション \f{ および セクション formulas

\htmlonly['[block]']

生成されるHTMLドキュメントにのみ逐語的に含まれ、生成されるXML出力では <htmlonly> でタグ付けされるテキストブロックを開始します。このブロックは \endhtmlonly コマンドで終了します。

このコマンドは、Doxygenには複雑すぎるHTMLコード(つまり、アプレット、JavaScript、特定の属性を必要とするHTMLタグ)を含めるために使用できます。

通常、\htmlonly\endhtmlonly の間の内容はそのまま挿入されます。テーブルやリストのようにブロック範囲を持つHTMLフラグメントを <p>..</p> の外に表示したい場合、これは無効なHTMLを引き起こす可能性があります。\htmlonly[block] を使用すると、Doxygenに現在の段落を終了させ、\endhtmlonly の後に再開させることができます。

環境変数($(HOME) など)は、HTMLのみのブロック内で解決されます。
関連項目
セクション \manonly, \latexonly, \rtfonly, \xmlonly, \docbookonly, および \htmlinclude

\image['{'option[,option]'}'] <format> <file> ["caption"] [<sizeindication>=<size>]

ドキュメントに画像を挿入します。このコマンドは形式固有なので、複数の形式に画像を挿入したい場合は、各形式に対してこのコマンドを繰り返す必要があります。

最初の引数は、画像を埋め込む出力形式を指定します。現在、以下の値がサポートされています: htmllatexdocbookrtf、および xml

2番目の引数は、画像のファイル名を指定します。Doxygenは、IMAGE_PATH タグの後に指定したパス(またはファイル)内でファイルを検索します。画像が見つかった場合、それは正しい出力ディレクトリにコピーされます。画像名にスペースが含まれている場合は、二重引用符 ("...") で名前を囲む必要があります。ファイル名の代わりに絶対URLを指定することもできますが、その場合、Doxygenは画像をコピーしたり、その存在を確認したりしません。

3番目の引数はオプションで、画像の下に表示されるキャプションを指定するために使用できます。この引数は、スペースが含まれていなくても単一行で引用符で囲んで指定する必要があります。引用符はキャプションが表示される前に削除されます。

4番目の引数もオプションで、画像の幅または高さを指定するために使用できます。これは {\LaTeX} または DocBook 出力(つまり、format=latex または format=docbook)に役立ちます。

サイズ表示
sizeindication は、使用する幅または高さ(またはその組み合わせ)を指定できます。{\LaTeX} でのサイズ指定子(例: 10cm または 4in、または \textwidth のような記号的な幅)。

現在、オプション inlineanchor のみがサポートされています。オプション inline が指定されている場合、画像は「行内に」配置され、キャプションが存在する場合はHTMLでツールチップとして表示されます(他の形式では無視されます)。anchor オプションの場合、構文は anchor:<anchorId> です。

コメントブロックの例を以下に示します。

  /*! 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の画像形式は、ブラウザがサポートするものに限定されます。
{\LaTeX} の場合、画像形式は {\LaTeX}\includegraphics コマンドでサポートされている必要があります。つまり、Encapsulated PostScript (eps)、Portable network graphics (png)、Joint photographic experts group (jpg / jpeg) です。

Doxygenは画像が正しい形式であるかを確認しません。したがって、**あなたが**それが正しい形式であることを確認する必要があります!

\latexonly

生成される {\LaTeX} ドキュメントにのみ逐語的に含まれ、生成されるXML出力では <latexonly> でタグ付けされるテキストブロックを開始します。このブロックは \endlatexonly コマンドで終了します。

このコマンドは、Doxygenには複雑すぎる {\LaTeX} コード(つまり、画像、数式、特殊文字)を含めるために使用できます。適切なHTML代替を提供するには、\htmlonly\endhtmlonly のペアを使用できます。

注: 環境変数($(HOME) など)は、{\LaTeX} 専用ブロック内で解決されます。

関連項目
セクション \rtfonly, \xmlonly, \manonly, \htmlonly, \docbookonly, および \latexinclude

\manonly

生成されるMANドキュメントにのみ逐語的に含まれ、生成されるXML出力では <manonly> でタグ付けされるテキストブロックを開始します。このブロックは \endmanonly コマンドで終了します。

このコマンドは、groff コードを MAN ページに直接含めるために使用できます。適切な HTML および {\LaTeX} の代替手段を提供するには、\htmlonly\endhtmlonly、および \latexonly\endlatexonly のペアを使用できます。

関連項目
セクション \htmlonly, \xmlonly, \rtfonly, \latexonly, \docbookonly および \maninclude

\li { item-description }

このコマンドは、最初の空白行または別の \li が現れるまで続く1つの引数を受け取ります。このコマンドは、ネストされていない単純な引数リストを生成するために使用できます。各引数は \li コマンドで開始する必要があります。

入力すると
  \li \c AlignLeft left alignment.
  \li \c AlignCenter center alignment.
  \li \c AlignRight right alignment

  No other types of alignment are supported.
次のテキストになります。

  • AlignLeft 左揃え。
  • AlignCenter 中央揃え。
  • AlignRight 右揃え。

他の種類の配置はサポートされていません。
ネストされたリストには、HTMLコマンドを使用する必要があります。

\arg と同等です。


\n

改行を強制します。<br> と同等であり、printf 関数から着想を得ています。


\p <word>

パラメーター <word> をタイプライターフォントで表示します。このコマンドは、本文中でメンバー関数のパラメーターを参照するために使用できます。

  ... the \p x and \p y coordinates are used to ...
これは次のテキストになります。

... x 座標と y 座標は ... に使用されます。

\c と同等です。複数の単語をタイプライターフォントにするには、<tt>複数の単語</tt> を使用します。


\rtfonly

生成されるRTFドキュメントにのみ逐語的に含まれ、生成されるXML出力では <rtfonly> とタグ付けされるテキストブロックを開始します。このブロックは \endrtfonly コマンドで終了します。

このコマンドは、Doxygenにとって複雑すぎるRTFコードを含めるために使用できます。

注: 環境変数 (例: $(HOME)) は、RTF専用ブロック内で解決されます。

関連項目
セクション \manonly, \xmlonly, \latexonly, \htmlonly, \docbookonly および \rtfinclude

\verbatim

ドキュメントに逐語的に含まれるテキストブロックを開始します。このブロックは \endverbatim コマンドで終了する必要があります。逐語ブロック内では、すべてのコマンドが無効になります。

警告
\verbatim コマンドに対して \endverbatim コマンドを含めるようにしてください。そうしないと、パーサーが混乱します!
関連項目
セクション \code, \endverbatim および \verbinclude

\xmlonly

生成されるXML出力にのみ逐語的に含まれるテキストブロックを開始します。このブロックは \endxmlonly コマンドで終了します。

このコマンドは、カスタムXMLタグを含めるために使用できます。

関連項目
セクション \manonly, \rtfonly, \latexonly, \htmlonly, および \docbookonly

\\

このコマンドは、出力にバックスラッシュ文字 (\) を書き込みます。Doxygenがコマンドを検出するために使用するため、バックスラッシュは場合によってはエスケープする必要があります。


\@

このコマンドは、出力にアットマーク (@) を書き込みます。DoxygenがJavadocコマンドを検出するために使用するため、アットマークは場合によってはエスケープする必要があります。


\~[LanguageId]

このコマンドは、言語固有のフィルターを有効/無効にします。これは、異なる言語のドキュメントを1つのコメントブロックに入れ、OUTPUT_LANGUAGE タグを使用して特定の言語のみをフィルターで除外するために使用できます。\~language_id を使用して特定の言語のみの出力を有効にし、\~ を使用してすべての言語の出力を有効にします (これはデフォルトモードでもあります)。

/*! \~english This is English \~dutch Dit is Nederlands \~german Dies ist
    Deutsch. \~ output for all languages.
 */

\&

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


\$

このコマンドは、出力に $ 文字を書き込みます。環境変数を展開するために使用されるため、この文字は場合によってはエスケープする必要があります。


\#

このコマンドは、出力に # 文字を書き込みます。ドキュメント化されたエンティティを参照するために使用されるため、この文字は場合によってはエスケープする必要があります。


\<

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


\>

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


\%

このコマンドは、出力に % 文字を書き込みます。ドキュメント化されたクラスまたは構造体でもある単語への自動リンクを防ぐために使用されるため、この文字は場合によってはエスケープする必要があります。


\"

このコマンドは、出力に " 文字を書き込みます。整形されていないテキストフラグメントを示すためにペアで使用されるため、この文字は場合によってはエスケープする必要があります。


\.

このコマンドは、出力にピリオド (.) を書き込みます。JAVADOC_AUTOBRIEF または QT_AUTOBRIEF が有効な場合に簡潔な説明の終了を防ぐ、または行頭の数値の後にピリオドが続く場合に番号付きリストの開始を防ぐのに役立ちます。


\?

このコマンドは、出力にはてなマーク (?) を書き込みます。JAVADOC_AUTOBRIEF または QT_AUTOBRIEF が有効な場合に簡潔な説明の終了を防ぐのに役立ちます。


\!

このコマンドは、出力に感嘆符 (!) を書き込みます。JAVADOC_AUTOBRIEF または QT_AUTOBRIEF が有効な場合に簡潔な説明の終了を防ぐのに役立ちます。


\=

このコマンドは、出力に等号 (=) を書き込みます。Markdownの見出し処理で使用されるため、この文字シーケンスは場合によってはエスケープする必要があります。


\::

このコマンドは、出力にダブルコロン (::) を書き込みます。ドキュメント化されたエンティティを参照するために使用されるため、この文字シーケンスは場合によってはエスケープする必要があります。


\|

このコマンドは、出力にパイプ記号 (|) を書き込みます。Markdownのテーブルに使用されるため、この文字は場合によってはエスケープする必要があります。


\--

このコマンドは、出力に2つのダッシュ (--) を書き込みます。これにより、1つのnダッシュ文字 (–) の代わりに、2つの連続するダッシュを出力に書き込むことができます。


\---

このコマンドは、出力に3つのダッシュ (---) を書き込みます。これにより、1つのmダッシュ文字 (—) の代わりに、3つの連続するダッシュを出力に書き込むことができます。


次のセクションに進むか、インデックスに戻ります。