構造体、いくつかのグローバル定数、およびメイン関数を含むmain.cppがあります。
私はdoxygenを実行しましたが、出力index.htmlで取得している唯一のドキュメントは構造体用です。
私はdoxygenが私のmain()もそのindex.htmlファイルに文書化することを望みます。私は間違って何をしていますか?
/// Definition of Pi
const auto Pi = 3.141592653589793238462643383279502884197169399;
/// \struct myStruc
/// \brief myStruc description
///
struct myStruc
{
/// Comments inside myStruc
};
/// \file
/// \brief Main function
/// \param argc An integer argument count of the command line arguments
/// \param argv An argument vector of the command line arguments
/// \return an integer 0 upon exit success
int main(int argc, char** argv)
{
/// Comments I would like to be documented in as well
return 0;
}
これは、doxygenがデフォルトで文書化しないグローバルオブジェクトを文書化しているためです。 doxygen manual (私の強調)から:
C++クラスのメンバーを文書化するには、クラス自体も文書化する必要があります。名前空間についても同じことが言えます。 グローバルC関数、typedef、列挙型、またはプリプロセッサ定義を文書化するには、最初にそれを含むファイルを文書化する必要があります(通常、これはヘッダーファイルになります。そのファイルには、他のソースファイルにエクスポートされる情報が含まれています)。
繰り返しますが、見落とされがちです:グローバルオブジェクト(関数、typedef、列挙型、マクロなど)を文書化するには、それらが定義されているファイルを文書化する必要があります。言い換えると、少なくとも
/*! \file */
または
/** @file */
このファイルの行。
したがって、上記の2行のいずれかをmain.cppファイルに追加してみてください。
確認してください HIDE_IN_BODY_DOCS
はNO
に設定され、次のようなものを使用します。
/// \file
/// \brief Main function
/// \param argc An integer argument count of the command line arguments
/// \param argv An argument vector of the command line arguments
/// \return an integer 0 upon exit success
int main(int argc, char** argv)
{
/// Comments I would like to be documented in as well
return 0;
}
私にとって、私はこのセットを持っていることを確認する必要がありました:
SHOW_FILES = YES
すべてのグローバル関数は、各ファイル内の[ファイル]タブに表示されます。また、コードの先頭に@fileまたは\ fileを定義している場合にも役立ちます。
「他の場所でのドキュメント」セクションのオンラインマニュアルから: http://www.doxygen.nl/manual/docblocks.html#specialblock
「Doxygenを使用すると、ドキュメントブロックを事実上どこにでも配置できます(例外は関数の本体内または通常のCスタイルのコメントブロック内にあります)。」
関数がどのように機能するか(その実装)の本質は通常望ましくないため、これはある程度意味があります。 doxygenの目的は、簡単に検索できるドキュメントを支援して、コーダーが物事の場所を見つけ、それらが何をするのか(そして、どのパラメーターがそれに渡され、何が返されるのかなど)を調べて、それらの使用方法を学ぶことができるようにすることだと思います。 、しかし実際にどのように実装されたかではありません。それには、実際に関数ソースを調べる必要があります(これは、doxygenで生成されたファイルでも利用できます)。また、お気づきの方もいらっしゃると思いますが、すべての例(私は思う)はヘッダーファイルのドキュメントを示していますが、ドキュメントはヘッダーファイルを対象としていると私は信じる実装がありませんが、ツールを使用すると柔軟性が得られます。ソースファイルも同様です。
それはとにかく私の見解です。誰か違う考えですか?