On 04/15/2014 05:14 AM, Jeremy Maitin-Shepard wrote:
If you are not already aware of it, you might want to look into Google Protocol Buffers. It doesn't directly interface with existing C++ types as conveniently as Boost Serialization, but it is specifically designed to support forward and backward compatibility, and I believe provides all of the functionality you are looking for.
I was also thinking Protocol Buffers when I read the original post. Unlike the size-based proposal in the original post, Protocol Buffers also handles the case where you remove parameters from the API. While you are correct that Protocol Buffers has a different interface than Boost.Serialization, I believe that it is possible to create a Boost.Serialization archive for Protocol Buffers, although we would have to introduce an index-value pair, similar to the named-value pair.