我基本上想爲我想創建的某些數據類型創建一個內部結構。這些數據類型將保存我的程序中的大部分信息(基本上是一個大型數據庫,但我想避免設置一個可用的麻煩),並且將被序列化/非序列化。從文本文件/ 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嗎? –