
I've never thought about this, but my first attempt would be something like the following: template<class Archive> void load(Archiv &ar , C &c, const unsigned int version){ if(version < 4>) ar >> boost::serialization::base_object<A>(c); else ar >> boost::serialization::base_object<B>(c); } "Fred Lupien" <fred.lupien@gmail.com> wrote in message news:32e6d6bf0710190708x45191057ld2a23a92399f59e4@mail.gmail.com... Hello, we are currently implementing serialization versioning using boost and I am curious to know if their is a way to support a changing class hierarchy. Let's say C derives from A for a while and then a change requires C to derive from B instead, which derives from A. Is it possible to support such a change provided we know what default values are needed for the new class? I tried and even if don't serialize anything in class C I get stream errors because I believe boost saves some base info for each class. When it tries to reload those value from a old stream, obviously it desynchronizes it because the values are not in the stream. So is their a way around this? Also is it possible to support the removal of a class. If, for exemple C derives from B which in turn derives from A and suddenly B is removed. Is their a way to deal with this without invalidating all previously saved data? *** I doubt it. If you want to load old archives, you have know how much to "skip" over. The only thing that MIGHT be possible is something like: template<class Archive> void load(Archiv &ar , C &c, const unsigned int version){ if(version < 4>){ class a; //no longer used ar >> a; // throw away old data on leaving scope } else ar >> boost::serialization::base_object<B>(c); } Thank you for your help! -- Frédérick Martel-Lupien Étudiant en Génie Informatique Université de Sherbrooke fred.lupien@gmail.com ------------------------------------------------------------------------------ _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users