2014-02-12 110 views
1

我正在構建一個數據結構,它可以包含任意類型的對(鍵,值),它們將通過基指針進行存儲和序列化。該數據結構將用於網絡中的對等體之間,我不能保證接收端存在所有類型對。 Boost可以很好地序列化一個集合,但是如果一個條目不能被序列化,它會拋出一個異常,並且反序列化會中止。在我的情況下,這被認爲是正常的,應該丟棄這個入口,並且反序列化應該繼續。Boost:如何在缺少類型時通過基指針序列化/反序列化泛型類型集合?

如果集合中的條目失敗,那麼繼續反序列化有什麼解決方案?

回答

0

存在的解決方案是/版本/

serialize接口傳遞一個無符號version號碼給您的班反序列化的方法,這樣你就可以決定如何處理事情,如果你的客戶恰好是一箇舊版本(即唐不知道幾種類型)或更新(即知道幾種類型)。

如果你正在做一個普通的多態的容器,你會想要做手工序列編碼每個元素的版本信息,在某種程度上,讓客戶能夠跳過元素「崩潰」

相關問題