Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2002-12-10 08:20:04


From: "David Abrahams" <dave_at_[hidden]>
[...]
> * Is it important to allow all UDTs to be separately versioned?

Yes, IMO.

> Every time I have implemented serialization and started with such
> a system, I eventually dropped it in favor of a whole-archive
> version number.

FWIW, I just went from a per-archive to per-class versioning. Per-archive
versioning works well for projects where you control the classes being
serialized. When you mix third-party classes lib1::X and lib2::Y, getting
the two libraries to agree on a common versioning scheme is impossible;
therefore, a standard serialization library has to support at least
per-class versioning.

> Two areas that spring to mind are pointer comparisons outside a
> single array for unserializing internal object pointers, and the
> use of type_info::name() for type identification.

Using type_info::name() means that when you recompile your program with
another compiler, or a newer version of the same compiler, it might no
longer be able to read its files.


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