提升序列化省略包装器的版本
Posted
技术标签:
【中文标题】提升序列化省略包装器的版本【英文标题】:boost serialization omit version for a wrapper 【发布时间】:2011-12-07 10:48:18 【问题描述】:我如何告诉 boost 对于特定结构它不应该写入/读取类“版本”标识符?
我正在编写一些包装类,用于以较小的方式序列化某些类型(如可变长度整数)。如果包装器编写了一个类版本,则大小减小的全部意义就丢失了(在大多数情况下最终会变大)。
例如,给定integer a
,我将替换此代码:
ar & a;
用这个:
ar & wrapper(a);
我看到了 is_wrapper
特征,但我真的找不到任何文档说明它的作用,或者它是否有帮助。
【问题讨论】:
【参考方案1】:添加
BOOST_CLASS_IMPLEMENTATION(wrapper, boost::serialization::object_serializable)
这是documented way。
【讨论】:
你不会碰巧知道底层结构代码,对吗?我有一个模板类型,因此宏不起作用。 @edA-qamort-ora-y:如果是其他任何库,我会建议您将宏挖出来,但在 boost... brrr 只是想想就让人不寒而栗。 是的,我只是在查看宏之后才问...虽然我认为我有一个语法,它似乎从wrapper_traits
派生自动省略了版本,所以我不知道是否我是对的。以上是关于提升序列化省略包装器的版本的主要内容,如果未能解决你的问题,请参考以下文章