Giriş
Eğer bu macro'yu kullanırsak serialize metodunu ikiye ayırabiliriz. Şu satırı dahil ederiz.
Normalde şöyle yaparız.
Bu sefer macro an alt yerine en üstte. Şöyle yaparız.
Eğer bu macro'yu kullanırsak serialize metodunu ikiye ayırabiliriz. Şu satırı dahil ederiz.
#include <boost/serialization/split_member.hpp>
İstersek şu satırı dahil ederiz.
#include <boost/serialization/access.hpp>
Örnek 1Normalde şöyle yaparız.
class MyClass {
private:
double value;
friend class boost::serialization::access;
template <class Archive>
void serialize(Archive &ar, const unsigned int){
ar & value;
}
};
Ayırmak için şöyle yaparız.class MyClass {
private:
double value;
friend class boost::serialization::access;
template<class Archive>
void save(Archive & ar, const unsigned int) const {
ar & val;
}
template<class Archive>
void load(Archive & ar, const unsigned int) const {
ar & value;
}
BOOST_SERIALIZATION_SPLIT_MEMBER()
};
Örnek 2
Bu sefer macro an alt yerine en üstte. Şöyle yaparız.
struct values
{
BOOST_SERIALIZATION_SPLIT_MEMBER();
template<class Archive>
void save(Archive & ar, const unsigned int version) const
{
...
}
template<class Archive>
void load(Archive & ar, const unsigned int version)
{
...
}
};
Hiç yorum yok:
Yorum Gönder