Boost Serializationを使用して、あるコンポーネントから別のコンポーネントに転送するためにデータ メンバーをシリアル化しています。このドキュメントでは、クラス バージョン メカニズムを使用して、クラス の古いバージョンと新しいバージョンの両方をシリアル化解除する方法について説明しています。
私のユースケースは少し異なります。場合によっては、コードの新しいバージョンがオブジェクトを古いバージョンに送信します。古いバージョンには新しい定義がないため、そのメカニズムを使用して新しいバージョンを読み取ることはできません。代わりに、プログラムで Boost クラスのバージョンを元に戻し、古いクライアントに接続したときに古いバージョンのクラスを生成したいと考えています。問題は、バージョンがコンパイル時に static const として設定されているように見えることです。
Boost が提供するツールを使用してこれを実現できますか?それとも、クラスの各インスタンスに独自のバージョン情報を追加する必要がありますか?