5

#define一部の doxygen ドキュメントでは、タグ自体ではなく、のコンテンツを表示したいと考えています。たとえば、私が持っているCファイルでは

#define REPEAT_N_TIMES 10

今私のドキュメントで表示したい:

アクションは 10 回実行されます。

を使用する\ref REPEAT_N_TIMESと、次のように表示されます。

アクションは REPEAT_N_TIMES 回実行されます

リンク自体ではなく、リンクのコンテンツを表示する方法はあります\ValueOf(\ref REPEAT_N_TIMES)\contentOf(\ref REPEAT_N_TIMES)?

更新:私の Doxygen の構成は次のとおりです。

// Configuration options related to the preprocessor

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
SEARCH_INCLUDES        = YES
INCLUDE_PATH           =
INCLUDE_FILE_PATTERNS  =
PREDEFINED             = WXUNUSED()=
EXPAND_AS_DEFINED      =
SKIP_FUNCTION_MACROS   = YES

設定により、マクロのMACRO_EXPANSION「詳細」が変わるようです。しかし、マクロの名前またはその内容を選択する方法がわかりません。コマンドの使用は\ref正しい方法ではないようです。「何か」の内容ではなく「何か」を参照しています。

おそらくCに似た、使用できる演算子または関数はあり\ref *somethingます\ref somethingか?

4

1 に答える 1

0

前処理に関する doxygen のマニュアル ページには、必要な情報がすべて含まれているようです。最初のステップとしてMACRO_EXPANSION、doxygen 構成ファイルのフラグを に設定してみYESてください。次に、ドキュメントに以下を含めます。

The action is done REPEAT_N_TIMES times.

doxygen のマニュアルに記載されているように、これによりすべてのマクロ定義が (必要に応じて再帰的に) 展開されますが、これはしばしば多すぎます。EXPAND_ONLY_PREDEFしたがって、構成ファイルのとEXPAND_AS_DEFINEDの設定を使用して、展開するマクロを正確に指定できます。たとえば、設定してみてください

EXPAND_ONLY_PREDEF = はい
EXPAND_AS_DEFINED = REPEAT_N_TIMES

構成ファイルで。

更新: @spamy のコメントに続いて、これをもう少し調べたところ、上記の方法はコメント ブロックのマクロでは機能しないようです。つまり、ソース コード内のマクロのみが展開されます。たとえば、doxygen sourceforge ページのこの投稿を参照してください。この投稿によると、コメント ブロック内でマクロ展開を実現する唯一の方法は、INPUT_FILTER構成ファイルの設定を使用することです。次のようなものを使用します

INPUT_FILTER = sed /REPEAT_N_TIMES/10

警告:上記INPUT_FILTERはテストされていません。

を使用したくない場合は、別のスレッドINPUT_FILTERへのこの回答がおそらく最善の策です。基本的に、マクロを文書化できると記載されているため、文書の読者は実際の値を簡単に見つけることができます。したがって、ドキュメントをドキュメントに追加し、ドキュメントの他の場所#defineに追加し\refてください。

于 2012-04-13T08:50:01.897 に答える