
Robert Ramey wrote:
David Abrahams wrote:
"Jeff Garland" <jeff@crystalclearsoftware.com> writes:
[...]
The hashing idea is a lot closer to the mark.
Not in my view
I find that very odd, since you later go on to say that this statement:
NOTE: due to a change in the serialization library interface, it is now required that all streamable objects be const prior to writing to the archive.
in inaccurate (which it isn't), and explain that:
What is true is that the state of an object should not be changed durring the process of serialization. That is the statement made by save(Archive &ar, const T & t).
The hash check does exactly that, verify that the state of the object hasn't changed. Anyway; have you considered making the default tracking level to only track pointer saves but not value saves? This would instantly marginalize the problem. Mixing object saves and pointer saves is fairly unreliable since it's order dependent (and will create problems later on if the object is versioned), but if one wants to use the library in such a way, the option to enable full tracking would still be there (and get the full const treatment).