【问题标题】:What does BOOST_SERIALIZATION_NVP do when serializing object?序列化对象时 BOOST_SERIALIZATION_NVP 做了什么?
【发布时间】:2012-01-21 20:54:56
【问题描述】:

我正在使用 boost.serialization。一些示例代码在序列化方法中使用了 BOOST_SERIALIZATION_NVP:

template<class Archive>
void save(Archive & ar, const unsigned int version) const
{
   ar & BOOST_SERIALIZATION_NVP(_from_prop);
}

我试图用谷歌搜索它的功能,但没有找到任何有用的东西。有什么区别

 ar & BOOST_SERIALIZATION_NVP(_from_prop)

和

 ar & _from_prop? 

【问题讨论】:

    标签: c++ serialization boost


    【解决方案1】:

    BOOST_SERIALIZATION_NVP 是一个宏,它(在您的示例中)扩展为:

    template<class Archive>
    void save(Archive & ar, const unsigned int version) const
    {
        ar & boost::serialization::make_nvp("_from_prop", _from_prop)
    }
    

    make_nvp 是一个包装器,其作用与直接序列化的作用相同

        ar & _from_prop;
    

    序列化为 XML 存档时除外。 XML 档案需要一些名称来用于 XML 标记。此名称是make_nvp 的字符串参数中指定的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-05
      • 1970-01-01
      • 2016-01-14
      • 2010-10-01
      • 2010-11-21
      • 2010-10-21
      相关资源
      最近更新 更多