Boost logo

Boost Users :

Subject: Re: [Boost-users] [repost][serialization] version handling in{save|load}_construct_data
From: Robert Ramey (ramey_at_[hidden])
Date: 2010-01-09 15:40:23


I believe that this came about when error to the serialization of
collections was discovered. Previous library versions didn't
properly save the version of the collection item. When this
was corrected, this code was needed to permit the the loading
of archives created previously.

If the type isn't versioned (e.g. some primitive type), then the
default version # would be zero. I suppose this could be
made more elaborate so that the version # wouldn't even
be in the archive in these cases - but that's not way we did it.

I don't know if that answers your question, but that's what
I remember about it.

Robert Ramey

> Why the version number has to be given such manual processing
> when this is not needed if, for instance, serializating
> values via the simple ar&value?

JOAQUIN M. LOPEZ MUÑOZ wrote:
> Hello, allow me to repost this message from a couple of
> weeks ago:
>
> I've taken a look at how the version number is dealt with
> in Boost.Serialization collection serialization code:
>
> * The relevant code at saving time is:
>
> if(3 < ar.get_library_version()){
> const unsigned int item_version = version<
> BOOST_DEDUCED_TYPENAME Container::value_type
> >::value;
> ar << BOOST_SERIALIZATION_NVP(item_version);
> }
>
> * At loading time, the equivalent code is:
>
> unsigned int item_version;
> ar >> BOOST_SERIALIZATION_NVP(count);
> if(3 < ar.get_library_version())
> ar >> BOOST_SERIALIZATION_NVP(item_version);
> else
> item_version = 0;
>
> Can someone (aka Robert :-) ) shed some light on this bit?
> Why the version number has to be given such manual processing
> when this is not needed if, for instance, serializating
> values via the simple ar&value?
> I'm trying to do the equivalent thing in Boost.MultiIndex.
>
> Thank you,
>
> Joaquín M López Muñoz
> Telefónica, Investigación y Desarrollo
>
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net