2011-12-16 55 views
19

我正在使用boost.serialization。一些示例代碼使用BOOST_SERIALIZATION_NVP在序列化方法:當序列化對象時,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? 

回答

31

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的字符串參數中指定的名稱。

相關問題