我目前正在尝试在编译时为OpenGL着色器生成C ++包装器。我当前的实现使用模板,但我的同事都不能再读它了,它也强制所有代码进入标题。
现在我想知道是否有更好的方法?我最近看过一个关于游戏开发的讨论,其中有人说他们从不在引擎中使用模板,并且有更好的方法来生成代码。
老实说,我找不到适用于我的东西,而且大多数代码生成工具都是用不同的语言编写的。
我想知道是否有类似的东西:
auto foo_class = create_class().setName("Foo");
.addMember<int>("i1")
.addMethod("print",||(){std::cout<< "hello";});
foo_class.generate();
会生成
class Foo{
int i1;
void print();
....
};
void Foo::print(){ std::cout << "hello";}
这样我就可以创建一个单独的工具,我可以在编译时调用它。是否存在类似的东西?