我基本上想为我想创建的某些数据类型创建一个内部结构。这些数据类型将保存我的程序中的大部分信息(基本上是一个大型数据库,但我想避免设置一个可用的麻烦),并且将被序列化/非序列化。从文本文件/ XML文件创建一个C++类
但我想从文本文件/ ml文件的布局中即时创建这些类/结构。例如:
container Music
field string name
field largenumber filesize
end container
这是一个非常基本的例子:在上述中,“容器”将是数据类型(类或结构),“字段”表示变量(以字符为..一个STL串,并且大部分是一个无符号整数或者其他的东西。是的,我意识到我想要类似于C++解析器(如编译器)的东西来检查正确的语法。数据类型(添加一个字段/删除一个字段/创建自己的结构),然后将其永久保存在我的程序中。这样做时序列化/反序列化 - 我所要做的就是确保我还保存了最后创建的具有序列化数据的类/结构文本文件,以便在反序列化时可以重新创建数据类型)。
有人会知道如何去做这件事,或建议我的设计更好的实现?
P.S.很明显,这些信息需要在运行时创建,而不是编译时。
你能更清楚吗?例如,您是否在查看这些数据时遇到问题?也就是说,你可以写一个可以包含可变数量的变量类型元素的类吗?或者之后你的问题是序列化呢?或者你通常会问是否有更好的解决方案? – Shahbaz
Your P.S.一点也不明显。如何在运行时编译生成的C++代码? – Cameron
您不能在运行时在C++程序中创建新类型。您需要为您的用户创建一种语言以表达其类型(或重用现有语言),并在您的程序中实施它。这种语言不需要类似于C++。这里有两个不同的问题,(1)使用什么样的语言,以及(2)如何实现它。不,让它三个。 (3)你真的不需要DBMS吗? –