|
Boost : |
From: rameysb (ramey_at_[hidden])
Date: 2002-02-26 12:34:21
Fellow programmers
I have just uploaded my proposal for a boost library to address
saving and restoring of C++ objects. I refer to this as
serialization.
After much effort I managed to get this working to fullfill all the
requirements below:
Code portability - depend only on ANSI C++ facilities.
Code economy - exploit features of C++ such as RTTI, templates, and
multiple inheritence, etc where appropriate to make code shorter and
simpler to use.
Independent versioning for each class definition. That is, when a
class definition changed, older files can still be imported to the
new version of the class.
Pointer persistence. Pointers and the objects they point to are
restored to a state equivalent to the original state when the objects
were stored. This includes proper restoration of multiple pointers
to the same object.
Persistence of STL containers
Archive portability - should be portable from one platform to
another.
Orthogonal specification of file stream output to permit seamless
filtering (e.g. encryption, compression, etc).
Non-intrusive. permit serializaton to be applied to unaltered
classes. That don't require that classes to be serialized be derived
from a specific base class or implement specified member functions.
This is necessary to easily permit serialization to be applied to
classes from class libraries that we don't want to have to alter.
Absolute minimal coding required to add serialization to ones program
Thanks in advance to anyone who wants to comment on this submission.
Robert Ramey
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk