Doxygenを使用して、Microsoft のSource-Code Annotation Language (SAL)を使用する C++ コードを文書化しようとしています。_Success_
ただし、Doxygen は などの特定の注釈マクロを正しく解析しません。関数アノテーションの例の場合_Success_
、Doxygen はこのマクロを関数ヘッダー/プロトタイプとして誤って解釈します。
関数注釈マーカーを含む次の例を見てください。
/**
* @file
* Example with function annotation.
*/
#include <windows.h>
#include <sal.h>
/**
* @brief This is a function.
* @param i a random variable
* @return TRUE on every call.
*/
_Success_(return) // The SAL function annotation.
BOOL function(_In_ int i) {
return TRUE;
}
上記の例では、Doxygen は_Success_()
関数のヘッダー/プロトタイプとして解釈するため、完全に間違ったドキュメントを作成します。関数アノテーションを付けた場合と付けない場合の HTML Doxygen 出力は次のようになります。
関数注釈を使用して、Doxygeni
は、引数のリストの一部ではないパラメーター変数を文書化したとも言っています。
C:/.../Source.cpp:9: 警告: コマンド @param の引数 'i' が、Success (リターン)の引数リストに見つかりません
メインのDoxygen 構成ファイルに構成設定がありませんか?
それとも、SALとDoxygenは単に互換性がないのでしょうか?