macros - 使用 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);
这会导致错误的文档。
有什么建议么?
解决方案
推荐阅读
- c# - Asp.Net Core Identity、IdentityUser.Email 与 UserManage
.GetEmailAsync(IdentityUser 用户) - javascript - Rollup 只关注导出数组中的一个配置
- kotlin - 所有生产者协程完成后如何关闭通道?
- xml - RTF 模板中的 XML 标记分组以抑制重复
- c++ - enable_if 如何帮助选择类模板的特化?
- ios - Firebase crashlytics 自动上传 dsym
- javascript - VueJS 从列表中选择对象并用函数显示
- reactjs - React JS - 如何更好地将 React 组件添加到 ReactDOM
- opentok - 如何在屏幕中插入背景和顶部图像 - 视频 API
- python - 烧瓶+MySQL。应用程序重新加载同一页面而不是路由,并且无法将值添加到 mysql db