宏扩展中的 Doxygen 简要说明
Doxygen brief description from within macro expansion
考虑以下 C++ 声明宏:
#define DECLARE_OBJECT_HANDLE(x) \
typedef struct x##HandleTag *x##Handle; \
typedef struct x##Handle *P##x##Handle
我想用一些 doxygen 注释来标记我的第二个指针声明。理想情况下,我希望第二个句柄引用第一个句柄,只有简短的描述说它是指向这种类型的指针。
我更改了我的宏:
#define DECLARE_OBJECT_HANDLE(x) \
typedef struct x##HandleTag *x##Handle; \
/**
* \brief Pointer to x##Handle.
*/ \
typedef struct x##Handle *P##x##Handle
当我发现它以某种方式起作用时,我真的很惊讶!
不幸的是,每个 typefef 都有一个带有一些奇怪字符的额外部分:
我真的很不喜欢下面的部分,因为我对此无话可说。这是 doxygen 的错误吗,当我只要求简要描述时它会产生额外的部分?
有什么办法可以预防?
PS:我在 Window 8.1 64 位上使用 doxygen 版本 1.8.12。
在混合定义、注释和类型定义的情况下,doxygen 将很难获得正确的流程。也许下面给出了一些提示/想法(因为它不是 100% 清楚你试图实现的目标):
/** Handle */
#define HT(x) \
typedef struct x##HandleTag *x##Handle
/** Pointer to #HT(x) */
#define PHT(x) \
typedef struct x##Handle *P##x##Handle
/** Doing both */
#define DECLARE_OBJECT_HANDLE(x) \
HT(x); \
PHT(x)
正如评论中所指出的,我所指的怪异字符是 来自无序列表的要点。
我在 doxygen 开发列表上问过这个问题,但是 no-one 已经回复了。
解决方法:
omit the *
in front of the \brief
doxycommand
PS: 原始代码在宏扩展之外的任何地方都有效。
考虑以下 C++ 声明宏:
#define DECLARE_OBJECT_HANDLE(x) \
typedef struct x##HandleTag *x##Handle; \
typedef struct x##Handle *P##x##Handle
我想用一些 doxygen 注释来标记我的第二个指针声明。理想情况下,我希望第二个句柄引用第一个句柄,只有简短的描述说它是指向这种类型的指针。
我更改了我的宏:
#define DECLARE_OBJECT_HANDLE(x) \
typedef struct x##HandleTag *x##Handle; \
/**
* \brief Pointer to x##Handle.
*/ \
typedef struct x##Handle *P##x##Handle
当我发现它以某种方式起作用时,我真的很惊讶! 不幸的是,每个 typefef 都有一个带有一些奇怪字符的额外部分:
我真的很不喜欢下面的部分,因为我对此无话可说。这是 doxygen 的错误吗,当我只要求简要描述时它会产生额外的部分?
有什么办法可以预防?
PS:我在 Window 8.1 64 位上使用 doxygen 版本 1.8.12。
在混合定义、注释和类型定义的情况下,doxygen 将很难获得正确的流程。也许下面给出了一些提示/想法(因为它不是 100% 清楚你试图实现的目标):
/** Handle */
#define HT(x) \
typedef struct x##HandleTag *x##Handle
/** Pointer to #HT(x) */
#define PHT(x) \
typedef struct x##Handle *P##x##Handle
/** Doing both */
#define DECLARE_OBJECT_HANDLE(x) \
HT(x); \
PHT(x)
正如评论中所指出的,我所指的怪异字符是 来自无序列表的要点。
我在 doxygen 开发列表上问过这个问题,但是 no-one 已经回复了。
解决方法:
omit the
*
in front of the\brief
doxycommand
PS: 原始代码在宏扩展之外的任何地方都有效。