序列化对象时,BOOST_SERIALIZATION_NVP会做什么? [英] What does BOOST_SERIALIZATION_NVP do when serializing object?

查看:520
本文介绍了序列化对象时,BOOST_SERIALIZATION_NVP会做什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using boost.serialization. some sample code use BOOST_SERIALIZATION_NVP in serialize method:

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

我尝试过搜索google的功能,但没有找到有用的信息.之间的区别是什么

I tried to google its functionality but nothing useful is found. what is the diff between

 ar & BOOST_SERIALIZATION_NVP(_from_prop)

 ar & _from_prop? 

推荐答案

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

BOOST_SERIALIZATION_NVP is a macro that expands (in your example) to:

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

make_nvp是包装器,其作用与直接序列化by

make_nvp is a wrapper that acts the same as serializing directly as by

    ar & _from_prop;

,除非序列化为XML存档. XML存档需要一些名称才能用于XML标记.此名称是在make_nvp的字符串参数中指定的名称.

except when serializing to an XML archive. An XML archive needs some name to be used for the XML tag. This name is the name specified in the string parameter to make_nvp.

这篇关于序列化对象时,BOOST_SERIALIZATION_NVP会做什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆