簡體   English   中英

用 doxygen 記錄枚舉值

[英]Documenting enum values with doxygen

鑒於:

namespace Foo {
    class Foo {
    public:
        /// Foo enum, possible ways to foo
        enum class Foo {
            /// Foo it with an A
            A,
            /// Foo it with a B
            B,
            /// Foo it with a C
            C
        }
    }
}

而默認的 Doxyfile 是用doxygen -g制作的,我明白了:

生成的文檔

如何記錄枚舉值? 我嘗試使用///<等將評論放在成員之前/之后,但無濟於事。 這可能只是 doxygen 中的一個錯誤? 文檔中的示例有效。 (點擊枚舉的名稱不會帶我到任何地方)

使用 Doxygen 1.8.2,以下兩項對我都有效:

使用///

/// This is an enum class
enum class fooenum {
    FOO, ///< this is foo
    BAR, ///< this is bar
};

使用/*. ... */ /*. ... */

/*! This is an enum class */
enum class fooenum {
    FOO, /*!< this is foo */
    BAR, /*!< this is bar */
};

簡要描述;簡介詳細說明

doxygen 變更日志說 Doxygen 1.8.2 支持enum class ,因此我懷疑您的命令中可能存在一些小的語法問題。 您能否將您的命令與上述兩個片段進行比較?

新功能

添加了對 C++11 的支持:

 strongly typed enums, eg: enum class E

請注意,我個人不喜歡有冗長的頭文件(因為記錄意味着至少要寫 2 或 3 行文檔,而不是一個詞,所以我通常沒有足夠的摘要)所以我更喜歡在 . .cpp 文件。

為此,您可以使用 Doxygen 的\var特性。

所以標題是裸露的:

namespace Foo {
    class Foo {
    public:
        enum class Foo {
            A,
            B,
            C
        };
    };
}

而 .cpp 文件有:

namespace Foo {

/** \enum Foo::Foo
 * \brief Foo enum, possible ways to foo
 *
 * All the necessary details about this enumeration.
 */

/** \var Foo::A
 * \brief Foo it with an A
 *
 * When you use A... etc.
 */

/** \var Foo::B
 * \brief Foo it with a B
 *
 * When you use B... etc.
 */

/** \var Foo::C
 * \brief Foo it with a C
 *
 * When you use C... etc.
 */

}

這樣,我就可以真正詳細地記錄下我經常遇到的事情。


正如 Maxim Paperno 在評論中提到的那樣, \var\fn和其他一些命令一樣,必須單獨在一行上。 這可能是這樣做的,因為該命令后面的類型可以由多個 C/C++ 關鍵字組成,並且將它們與文檔編寫者輸入的消息區分開來會很復雜。

以下樣式適合我:

enum class Foo {
  /**Foo it with A*/
  A,
  /**Foo it with B*/
  B
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM