单独标头中enum类的Doxygen文档

单独标头中enum类的Doxygen文档,doxygen,Doxygen,我试图为驻留在自己的头文件中的枚举类添加文档。以下是我迄今为止所做的工作 /** @file */ namespace foo { /** @brief blablabla */ enum class MyEnum{ /** This is ENUM_A */ ENUM_A, /** This is ENUM_B */ ENUM_B, /** This is ENUM_C */ ENUM_C

我试图为驻留在自己的头文件中的枚举类添加文档。以下是我迄今为止所做的工作

/**
@file
*/
namespace foo {

/**
@brief blablabla
*/
enum class MyEnum{
    /**
     This is ENUM_A
    */
    ENUM_A,
    /**
     This is ENUM_B
    */
    ENUM_B,
    /**
     This is ENUM_C
    */
    ENUM_C
};
}
出于某种原因,生成的文档在列表中显示了这3个枚举成员,但当我单击它们时,它不会生成具有自己描述的页面。然而,当我把这个枚举类放在另一个类中时,它就起作用了。 有人能帮我找出我遗漏的东西吗?谢谢。

来自:

<>要记录C++类的成员,还必须记录类 它本身名称空间也是如此。记录全局C 函数、typedef、枚举或预处理器定义必须首先 记录包含它的文件(通常是标题) 文件,因为该文件包含导出到的信息 其他源文件)

因此,如果您记录您的
foo
名称空间,一切正常:

/**
@brief Namespace foo
*/
namespace foo {

/**
@brief My enum
*/
enum class MyEnum{
    /**
     This is ENUM_A
    */
    ENUM_A,
    /**
     This is ENUM_B
    */
    ENUM_B,
    /**
     This is ENUM_C
    */
    ENUM_C
};
}
首先单击名称空间,然后单击
foo
,然后您的枚举文档就可以使用了

更新


正如@albert所指出的,还有另一种方法。据报道,

如果
EXTRACT\u ALL
标记设置为
YES
doxygen将采用ALL 文档中的实体都有文档记录,即使没有文档记录 可用。将删除私有类成员和静态文件成员 隐藏,除非设置了
EXTRACT\u PRIVATE
EXTRACT\u STATIC
标记 至
YES


如果您的代码库中有许多这样的场景,那么这是一个不错的选择。

Small addition问题中的原始第一个注释块记录了文件,因此
名称空间
没有记录。将
名称空间``记录为bu@bobmorane编写的文件,或将doxygen配置文件(
Doxyfile
)中的``提取``全部``设置为
YES
。在提供的片段中,文件在第一个注释块中记录(带有空字符串),但是名称空间本身没有文档记录。有关更多详细信息,请参阅下面的答案。