41

鉴于:

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 中的一个错误吗?文档中的示例有效。(单击枚举的名称不会带我到任何地方)

4

3 回答 3

38

使用 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, e.g.:
enum class E
于 2012-12-07T03:09:42.323 回答
12

请注意,我个人讨厌有冗长的头文件(因为记录意味着编写至少 2 或 3 行文档,而不是一个字,所以我通常没有足够的简短内容)所以我更喜欢在 . .cpp 文件。

为此,您使用\varDoxygen 的功能。

所以标题是裸露的:

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.
 */

}

这样,我就可以真正详细地记录这在我身上经常发生的事情。

于 2014-08-11T04:20:27.633 回答
7

以下样式对我有用:

enum class Foo {
  /**Foo it with A*/
  A,
  /**Foo it with B*/
  B
}
于 2012-12-07T03:38:54.743 回答