【问题标题】:boost serialization omit version for a wrapper提升序列化省略包装器的版本
【发布时间】:2011-12-07 10:48:18
【问题描述】:

我如何告诉 boost 对于特定结构它不应该写入/读取类“版本”标识符?

我正在编写一些包装类,用于以较小的方式序列化某些类型(如可变长度整数)。如果包装器编写了一个类版本,则大小减小的全部意义就丢失了(在大多数情况下最终会变大)。

例如,给定integer a,我将替换此代码:

ar & a;

用这个:

ar & wrapper(a);

我看到了 is_wrapper 特征,但我真的找不到任何文档说明它的作用,或者它是否有帮助。

【问题讨论】:

    标签: c++ boost boost-serialization


    【解决方案1】:

    添加

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

    这是documented way

    【讨论】:

    • 你不会碰巧知道底层结构代码,对吗?我有一个模板类型,因此宏不起作用。
    • @edA-qamort-ora-y:如果是其他任何库,我会建议您将宏挖出来,但在 boost... brrr 只是想想就让人不寒而栗。
    • 是的,我只是在查看宏之后才问...虽然我认为我有一个语法,它似乎从 wrapper_traits 派生自动省略了版本,所以我不知道是否我是对的。
    猜你喜欢
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多