5

私は自分のコードの一部を文書化するために Doxygen を使用しています。ヘッダーで指定されているデフォルトの引数を使用する関数があります。

unsigned int CountColumns(const std::string&,const std::string& delim="");

ソースファイル内の対応する実装は次のとおりです。

unsigned int CountColumns(const string& input,const string& delim)
{
   ...
}

Doxygen を使用してドキュメントを生成すると、CountColumns には 2 つのエントリがあります。1 つはデフォルト値を含み、もう 1 つは含まないものです。

unsigned int    CountColumns (const string &input, const string &delim)
unsigned int    CountColumns (const std::string &, const std::string &delim="")

どうすればこれを回避できますか? 複数の関数定義によってドキュメントが乱雑になるのは望ましくありません。

編集:以下の私の回答でも述べたように、問題はヘッダーファイルが引数に「std::string」を使用しているのに対し、ソースファイルには「using std::string」が含まれていることが原因のようですステートメントを使用し、引数で「string」を使用します。ソースファイルでも 'std::string' を使用するように関数定義を変更すると、Doxygen はヘッダーで宣言されたものと同じ関数であると認識します。

4

3 に答える 3

5

BUILTIN_STL_SUPPORT構成ファイルでに設定することをお勧めしYESます。これにより、doxygenは、文字列がstd名前空間で定義されたクラスであることを認識します。

于 2012-08-29T19:42:49.627 に答える
2

この問題は、ヘッダー ファイルが引数に 'std::string' を使用しているのに対し、ソース ファイルには 'using std::string' ステートメントが含まれており、引数に 'string' を使用していることが原因のようです。ソースファイルでも 'std::string' を使用するように関数定義を変更すると、Doxygen はそれがヘッダーで宣言されたものと同じ関数であると認識します。

理想的ではありませんが、これは機能し、扱いにくいわけではありません。

于 2012-08-28T20:25:00.557 に答える
0

ドキュメントから余分な機能を除外するのはどうですか?

これは doxygen FAQからのものです。

" doxygen に一部のコードフラグメントを無視させるにはどうすればよいですか?

新しい最も簡単な方法は\cond、最初にコマンドを含む 1 つのコメント ブロックを追加\endcondし、無視する必要があるコード部分の最後にコマンドを含む 1 つのコメント ブロックを追加することです。もちろん、これは同じファイル内にある必要があります。

しかし、これには doxygen のプリプロセッサを使用することもできます:

 #ifndef DOXYGEN_SHOULD_SKIP_THIS

  /* code that must be skipped by Doxygen */

 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
 around the blocks that should be hidden and put:

   PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
 in the config file then all blocks should be skipped by Doxygen as long as 

前処理 = はい。"

于 2012-08-28T19:43:10.480 に答える