使用宏在CLI C ++中创建html doc

时间:2010-10-05 23:44:52

标签: c++-cli preprocessor

从本机外部库中,我得到一个包含枚举声明的头文件:

#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 ++编译器将///视为注释,由于该行末尾的\,它会转到下一行。

是否有可能在不使用codegen工具的情况下实现这一目标?谢谢!

1 个答案:

答案 0 :(得分:1)

Microsoft的预处理器不会在宏中保留注释。因此,技术上插入换行是不可能的。 See this Q& A了解详情。

因此,首先使用MS的预处理器无法生成代码。