利用gcc/clang生成cpp类型

利用gcc/clang生成cpp类型,gcc,annotations,type-conversion,g++,clang,Gcc,Annotations,Type Conversion,G++,Clang,我正在寻找一些助手方法或编译器插件来生成新类型,并通过检查现有代码来扩展当前类型,如下所示 输入 struct MyType { int _integer; char _char; } 产出 class MyTypeExtended : public oatpp::DTO { DTO_INIT(MyTypeExtended, DTO) DTO_FIELD(Int32, _integer); DTO_FIELD(Char, _char); } 实际上,我

我正在寻找一些助手方法或编译器插件来生成新类型,并通过检查现有代码来扩展当前类型,如下所示

输入

struct MyType {
    int _integer;
    char _char;
}
产出

class MyTypeExtended : public oatpp::DTO {
    DTO_INIT(MyTypeExtended, DTO)
    DTO_FIELD(Int32, _integer);
    DTO_FIELD(Char, _char);
}
实际上,我正在寻找类似Java注释的保留策略类,它将保留到编译代码为止。根据我的理解,没有这样的本地(也是可移植的)方法来实现这一点,模板元编程可能会在一定程度上有所帮助

我也尝试过使用sed进行一些解析器开发,但经过一段时间后事情变得非常复杂。所以我决定寻找一种更系统的方法来解决这个问题。我还对编译器前端开发进行了一些研究,以开发一个好的解析器(根据的想法;gcc正在进行词法分析和语法分析,这可能有助于我在某种程度上进行一些插入)

我仍然觉得离任何解决办法都很远。欢迎提出任何建议