BOOST_SERIALIZATION_NVP在序列化对象时做什么?

What does BOOST_SERIALIZATION_NVP do when serializing object?

本文关键字:对象 什么 序列化 SERIALIZATION NVP BOOST      更新时间:2023-10-16

我使用boost.serialization。一些示例代码使用BOOstrongERIALIZATION_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? 

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的字符串参数指定的名称。
相关文章: