我最初是在这里问这个问题的: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/