1

を使用する C++ クラスにメンバーを追加するタスクがあります。

boost::serialization::access

オブジェクトはテキスト ファイルに保存され、読み戻されます。

ただし、下位互換性が必要であり、新しい bool メンバーをシリアル化する必要があります。

新しいコードが古いファイルを読み取り、新しい形式のみを書き込むことができるようにする必要があります。

具体的には、シリアル化されたファイルに新しいデータ メンバーがありません。これにより、読み込み時に例外が発生します。

どうすればこれを行うことができますか?/どのような提案/メカニズムがこれを可能にしますか?

これを処理するパターンまたは既知の方法があると思いますが、それが何であるかはわかりません。

(確かにブースト コードを書いている人たちは、コード/オブジェクトが変更され、古いファイルは新しいコード/オブジェクトで処理する必要があることを理解していました)

4

1 に答える 1

2

Boost's serialization supports versions. See the following links: Link #1, Link #2 and an example.

于 2012-05-14T19:22:15.710 に答える