|
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