0
假設我使用boost將序列化爲XML存檔。該地圖類型爲std :: map < long,CMyObject>。我意識到我需要使用這種類型:std :: map < std :: string,CMyObject>。在這種情況下,我將如何去處理向後兼容?下面是我的連載方法看起來像現在:C++ boost序列化 - 如何替換存檔中的字段類型
template<class Archive>
void serialize(Archive & ar, const unsigned int file_version)
{
ar & BOOST_SERIALIZATION_NVP(m_MyMap);
}
void serialize (std::ostream &out) const
{
boost::archive::xml_oarchive oa (out);
oa << boost::serialization::make_nvp ("MyArchive.xml", *this);
}
void serialize (std::istream &in)
{
boost::archive::xml_iarchive ia (in);
ia >> boost::serialization::make_nvp ("MyArchive.xml", *this);
}
m_MyMap目前的類型的std ::地圖<長,CMyObject>但需要改變爲std ::地圖<的std :: string,CMyObject>。什麼是最簡單的方法來處理這個問題?