[英]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.