3

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 構成ファイルに構成設定がありませんか?
それともSALDoxygenは単に互換性がないのでしょうか?

4

1 に答える 1