web-dev-qa-db-ja.com

Doxygenを使用したC ++での関数の文書化

ドキュメントを生成するためにDoxygenを使用しているプロジェクトがあります。クラスのドキュメントは問題ありませんが、オブジェクトの作成などに使用する非メンバー関数もいくつか持っています。これらもドキュメント化したいのですが、何を試しても、Doxygenはドキュメントを生成しません関数の上に置いたコメント。 Doxygenがグローバル名前空間の関数のドキュメントを生成しないのはなぜですか?これを機能させるには何をする必要がありますか?

28
Paul

使用する \fnどこで使用するか\classあなたの\\*!*\ブロック

http://www.doxygen.nl/manual/docblocks.html 「他の場所にあるドキュメント」を探します

http://www.doxygen.nl/manual/commands.html#cmdfn
これは、ドキュメントのメンバー関数と同様に機能します

10
Pieter

クラスのメンバーであるエンティティは、そのクラスが文書化されている場合にのみ文書化されます。名前空間スコープで宣言されたエンティティは、それらの名前空間が文書化されている場合にのみ文書化されます。ファイルスコープで宣言されたエンティティは、それらのファイルが文書化されている場合にのみ文書化されます。

したがって、グローバル名前空間の自由関数を文書化するには、それが宣言されているヘッダーファイルのどこかに次のような行も必要です。

/** @file */

またはこのように:

/*! \file */
23
Oktalist

このパターンは私たちにとってはうまくいきました。

/*! Convert counts to kg for the reservoir.  
    \param counts The A/D counts to convert.` 
    \return The calculated kg based on the parameter.  
*/  
float RES_ConvertCountsToValue(uint_16 counts);  
5
Bruce

このパターンが好き

   ///////////////////////////////////////////////////////////////////////
   /// \brief setX
   /// \param x offset of the image.
   /// \return a new image as an QImage.
   /////////////////////////////////////////////////////////////////////////
    QImage  setX(int x);
2
Lukasz Madon