$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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.