Boost logo

Boost :

From: Russell Hind (rh_gmane_at_[hidden])
Date: 2004-10-20 09:39:06


The header of our xml archive looks like this:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization>
<boost_serialization signature="serialization::archive" version="3">
<CoatingScanConfig class_id="0" tracking_level="0">

The object written as CoatingScanConfig didn't have a class version
specified (and therefore there isn't one in the header).

When writting this class, the version parameter is passed in to the
serialize() method is 0 for the class, but when reading it, the version
number is subsequently passed in as 3 (which looks like the archive
version). Should it not be 0 also?

Is 0 a valid version number for a class? If I specify the class version
as 1, then reading and writing both get '1' as the version, but if I
don't specify a version, or I specify 0, then writing gets 0, but
reading gets '3'.

If 0 isn't valid, then could there be a static_assert catching this?

And a quick usage question: If a class isn't versioned, is an inherent
'version 0' written to the archive so that a version number of 1 can be
applied to the object later when it is modified, or do objects need to
be given a version number from the start?

Thanks

Russell


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk