汽车类生成器

时间:2018-03-07 23:19:06

标签: c++ class templates code-generation auto-generate

我最初在这里问过这个问题:Former Question

似乎我所要求的是被误解了。我会尽量使其尽可能简洁明了:

我正在处理一个自动生成c++ class的解析器,如果存在头文件和cpp文件的名称,解析器将分别写出这些文件。如果它们被省略,那么解析器将不会根据从文件中提取的信息自动生成任何文件。

我不知道该怎么做:让我们说我的班级标识符存储在std::string中如何提取字符串中的文本以将其用作班级的名字。例如:

{ 
    std::string className( "Foo" );

    // parser writing class in code
    class className { ....

} 

如果可以做到的话,这就是我不知道该怎么做。正如我在上一个问题中所述,我宁愿远离macros,但如果需要或某些其他机制,请不要使用templates

结论

阅读下面的评论和提供的答案后;我最初的假设是我没有提到事实证明是真的。它无法完成。我对此表示怀疑,但只是想确认一下。因此,这使我不得不写出文件,以便在运行时创建所需的头文件或源文件。

1 个答案:

答案 0 :(得分:1)

你不能。

C ++程序无法自行修改。

如果您想自动生成C ++代码,请在构建过程中将其作为预编译步骤。

我自己有一个很好的Python脚本,它生成了大量的C ++类(及其附带的样板文件),每个类代表几种消息类型中的一种"由第三方定义。真可爱。