Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-05-16 06:07:31


bwood wrote:
> David Abrahams wrote:
>> bwood <brass_at_[hidden]> writes:
>>
>>> Along the lines of what Lapin is thinking, I think B.Ser's
> "versioning"
>>> support is problematic. For example, consider wanting to move (or
>>> delete) a data member out of a type between versions 1.1 and 1.2.
>>> B.Ser needs that member to remain in the type in order to support
> 1.1.
>>
>> No, you just read it and throw it away.
>>
>> if (version == 11)
>> {
>> type_of_deleted_member ignored;
>> ar & ignored;
>> }
>
> Wait a minute. The code above looks like you may have focused on
> deleting a member and not relocating it. "ignored" isn't coming
> from anywhere else with a 1.1 client and it needs to be stored
> somewhere. Also if a 1.2 server is sending to a 1.1 client,
> it doesn't matter whether the member has been deleted or
> relocated, it still has to send the right thing back.

This is an inherent property of the communication between an 1.2 server and
an 1.1 client; any versioning system would have this problem. If you want to
talk to 1.1 code, you have to be able to produce 1.1 data. This is true even
if the underlying serialization layer doesn't support versioning at all, it
just makes it harder for you.


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