2011-12-16 4 views
19

私はboost.serializationを使用しています。 Serializeメソッドでいくつかのサンプルコード使用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はシリアル化と同じように動作するラッパーです直接by

ar & _from_prop; 

XMLアーカイブにシリアル化する場合を除きます。 XMLアーカイブには、XMLタグに使用する名前が必要です。この名前は、文字列パラメータで指定された名前で、make_nvpです。

関連する問題