3

Boost Serializationを使用して、あるコンポーネントから別のコンポーネントに転送するためにデータ メンバーをシリアル化しています。このドキュメントでは、クラス バージョン メカニズムを使用して、クラス の古いバージョンと新しいバージョンの両方をシリアル化解除する方法について説明しています。

私のユースケースは少し異なります。場合によっては、コードの新しいバージョンがオブジェクトを古いバージョンに送信します。古いバージョンには新しい定義がないため、そのメカニズムを使用して新しいバージョンを読み取ることはできません。代わりに、プログラムで Boost クラスのバージョンを元に戻し、古いクライアントに接続したときに古いバージョンのクラスを生成したいと考えています。問題は、バージョンがコンパイル時に static const として設定されているように見えることです。

Boost が提供するツールを使用してこれを実現できますか?それとも、クラスの各インスタンスに独自のバージョン情報を追加する必要がありますか?

4

2 に答える 2

3

Boost.Serialization が使用する型バージョンに動的に影響を与える方法はありません。これはコンパイル時の定数であるためです(前述のとおり)。この特定のケースを処理するには、独自のバージョン管理スキームを追加する必要があります。

于 2011-04-18T23:23:57.833 に答える