#在 Doxygen 上定义枚举

#defined enum on Doxygen

所以我有一个 #define 创建一个“MY_ENUM”(最小版本)

#define MY_ENUM(ename, ...)              \                                                
  namespace ename {                      \
    enum ename { __VA_ARGS__, COUNT };   \
    static std::string _Strings[COUNT];  \
    static inline size_t size() {return COUNT;}  \ 
}

这会生成有用的枚举,可以创建为:

/**
  * @brief List of elements
  */
MY_ENUM(enuElements, Element1, Element2, Element3, Element4, Element5, Element6)

但是用 doxygen 生成文档似乎不起作用 => 它混合了一个枚举和下面的枚举,有些甚至没有出现。

我设置:

MACRO_EXPANSION        = YES
SKIP_FUNCTION_MACROS   = NO
PREDEFINED             = MY_ENUM(x) = 

根据我的阅读,答案是 PREDEFINED 的正确设置,但我没有实现,有谁知道如何使用这种定义创建文档?

编辑

Doxygen 版本:1.8.0

关于为什么我认为线索在PREDEFINED(但我也可能是错的):

使用以下代码:

/// \file

#define MY_ENUM(ename, ...)              \
  namespace ename {                      \
    enum ename { __VA_ARGS__, COUNT };   \
    static std::string _Strings[COUNT];  \
    static inline size_t size() {return COUNT;}  \
}

/**
  * @brief List of elements
  */
MY_ENUM(enuElements, Element1, Element2, Element3, Element4, Element5, Element6)

设置(默认设置除外):

MACRO_EXPANSION        = YES

和 doxygen 1.9.1 我得到了: