【发布时间】:2026-01-17 18:10:01
【问题描述】:
从一个本地的外部库中,我得到一个带有枚举声明的头文件:
#define LIST(declare) \
declare(A, "aaa") \
declare(B, "bbb") \
declare(C, "ccc") \
使用它,我创建了一个 .NET 枚举:
#define EXTRACT(p1,p2) p1,
enum class Val { LIST(EXTRACT) };
效果很好。结果是Val.A, ... 值。现在,我想使用相同的方法自动生成/// aaa html doc,这样宏的输出将如下所示:
enum class Val {
/// aaa
A,
/// bbb
B,
/// ccc
C,
}
创建一个类似
的宏#define EXTRACT(p1,p2) /// p2 \
p1,
不起作用,因为 C++ 编译器将 /// 视为注释,由于行尾的 \ 而进入下一行。
是否有可能在不使用代码生成工具的情况下实现这一目标?谢谢!
【问题讨论】:
标签: c++-cli preprocessor