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

看来我的要求被误解了。我将尽力使之尽可能简洁明了:



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

我不知道该怎么办:假设我的班级标识符存储在std::string中,如何提取字符串中的文本以用作班级名称。例如:

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

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

}


这是我什至不知道该怎么办。如我在上一个问题中所述,我宁愿远离macros,但如果需要或其他某种机制,则不介意使用templates



结论

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

最佳答案

你不能

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

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

我自己有一个不错的Python脚本,它生成大量的C ++类(及其伴随的样板),每个类都表示由第三方定义的几种“消息类型”之一。好可爱

关于c++ - 汽车类发生器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49162871/

10-08 21:30