Giriş
Kodunu değiştiremeyeceğimiz sınıfları boost isim alanına ekleyerek kullanabilir. Şöyle yaparız.
Kodunu değiştiremeyeceğimiz sınıfları boost isim alanına ekleyerek kullanabilir. Şöyle yaparız.
namespace boost {
namespace serialization {
template<class Archive>
void serialize(Archive & ar, Point & mapPoint, const unsigned int version) {
ar & ...;
}
}
}
Tek bir metod yerine save ve load isimli iki metoda bölmek istersek şöyle yaparız.namespace boost {
namespace serialization {
template <class Archive>
inline void save(Archive &ar, Foo const &f, const unsigned int version) {
...
}
template <class Archive>
inline void load(Archive &ar, Foo &f, const unsigned int version) {
...
}
// split non-intrusive serialization function member into separate
// non intrusive save/load member functions
template <class Archive>
inline void serialize(Archive &ar, Foo &f, const unsigned int version) {
boost::serialization::split_free (ar, f, version);
}
} // serialization
} // namespace boost
Eğer serialize edilecek sınıf Archive dışında başka parametreler kullanıyorsa şöyle yaparız.namespace boost { namespace serialization {
template <typename Ar, typename Block, typename Alloc>
void save(Ar& ar, dynamic_bitset<Block, Alloc> const& bs, unsigned) {
...
}
template <typename Ar, typename Block, typename Alloc>
void load(Ar& ar, dynamic_bitset<Block, Alloc>& bs, unsigned) {
...
}
template <typename Ar, typename Block, typename Alloc>
void serialize(Ar& ar, dynamic_bitset<Block, Alloc>& bs, unsigned version) {
split_free(ar, bs, version);
}
} }
Hiç yorum yok:
Yorum Gönder