首页 > 解决方案 > 使用 doxygen 记录特殊宏

问题描述

我想记录一个宏

HELPS(enumName, uint8_t, element1 = 4, element2, last);

使用 Doxygen 并使用预处理器将其转换为

enum class enumName
{
   element1 = 4,
   element2,
   last
};

获取通用枚举文档。我已经在 doxygen 中使用了 PREDEFINED 标签

HELPS(param1,param2,...)="enum class param1 { __VA_ARGS__ }"

但这行不通。Doxygen 版本是 1.9.1 语言是 C++。

我通常记录枚举类,如

/**
 *  @enum enumName
 *  @brief a enum test class
 *  @var enumName::element1
 *  It is 4
 *  @var enumName::element2
 *  It is 5
 *  @var enumName::last
 *  It is 6
 */
enum class enumName
{
    element1 = 4,
    element2,
    last
};

效果很好。由于某些原因,我现在被迫使用宏(HELPS)而不是枚举。行为是相同的,文档也应该是一样的。

我写:

/**
 *  @enum enumName2
 *  @brief a enum test class
 *  @var enumName2::element10
 *  It is 40
 *  @var enumName2::element20
 *  It is 41
 *  @var enumName2::last
 *  It is 42
 */
HELPS(enumName2, uint8_t, element10 = 40, element20, last);

它应该在 doxygen 预处理器中扩展为良好的工作示例,但遗憾的是(使用 -d 预处理器)它扩展为:

/**
 *  @enum enumName2
 *  @brief a enum test class
 *  @var enumName2::element10
 *  It is 40
 *  @var enumName2::element20
 *  It is 41
 *  @var enumName2::last
 *  It is 42
 */
 element10 = 40   class   enumName2   { __VA_ARGS__ } element20, last);

这会导致错误的文档。

有什么建议么?

标签: macrosdoxygen

解决方案


推荐阅读