使用doxygen记录枚举值

时间:2012-12-06 20:43:51

标签: c++ c++11 enums 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
        }
    }
}

使用doxygen -g创建的默认Doxyfile,我明白了:

generated documentation

如何记录枚举值?我尝试使用///<等在成员之前/之后发表评论无效。可能这只是doxygen中的一个错误?文档中的示例有效。 (点击枚举的名称并没有把我带到任何地方)

3 个答案:

答案 0 :(得分:21)

使用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 */
};

Brief Description Detailed Description

doxygen changelog表示Doxygen 1.8.2支持enum class,因此我怀疑您的命令可能存在一些轻微的语法问题。您能否将您的命令与上述两个片段进行比较?

  

新功能

     

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

strongly typed enums, e.g.:
enum class E

答案 1 :(得分:9)

请注意,我个人不喜欢有长篇文章(因为记录意味着要写至少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 an B
 *
 * When you use B... etc.
 */

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

}

这样,我可以真正记录下我经常发生的事情。

答案 2 :(得分:5)

以下风格适合我:

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