
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