2011-12-07 74 views
2

我該如何告訴boost,對於特定的結構,它不應該編寫/讀取類「版本」標識符?boost序列化忽略包裝的版本

我正在寫一些包裝類以更小的方式序列化某些類型(如可變長度整數)。如果包裝器得到一個類的版本,那麼整個尺寸減小的點就會丟失(在大多數情況下,它會變得更大)。

例如,給定integer a我會替換該代碼:

ar & a; 

與此:

ar & wrapper(a); 

我看到is_wrapper特質,但我真的不能找到任何文檔這是什麼,或者它可能有幫助。

回答

2

添加

BOOST_CLASS_IMPLEMENTATION(wrapper, boost::serialization::object_serializable) 

這是documented way

+0

你不會碰巧知道底層的結構代碼,是嗎?我有一個模板類型,因此宏不起作用。 –

+0

@ edA-qamort-ora-y:有沒有其他的圖書館我會建議你只是把宏挖出來,但是在提升... * brrr *只是想着它會讓我感到不適。 –

+0

是的,我只是在查看宏後才問...雖然我認爲我有一個語法,看起來'wrapper_traits'派生自動忽略版本,所以我不知道我是否正確。 –