6 Şubat 2017 Pazartesi

serialization BOOST_SERIALIZATION_ASSUME_ABSTRACT

Giriş
BOOST_CLASS_EXPORT yazısına da göz atabilirsiniz.

Örnek 1
Ata sınıfımız olsun
class IField {

private:
  friend class boost::serialization::access;
  template<class Archive>
  void serialize(Archive&, const unsigned int) {}
};

BOOST_SERIALIZATION_ASSUME_ABSTRACT(IField)
Kalıtan sınıf için şöyle yaparız.
class Field: public IField {
public:
  ...

private:

  friend class boost::serialization::access;
  template<typename Archive>
  void serialize(Archive& archive, const unsigned int) {
    archive & boost::serialization::make_nvp("IField",
      boost::serialization::base_object<IField>(*this));
    archive & boost::serialization::make_nvp("Name", mName);
    archive & boost::serialization::make_nvp("Value", mValue);
  }

    std::string mName;
    T mValue;
};

Hiç yorum yok:

Yorum Gönder