部分的なシリアル化をサポートする既存の優れた C++ シリアル化ライブラリはありますか?
「部分的なシリアル化」とは、3 つの特定のメンバーの値を保存し、後でその保存されたコピーを別のインスタンスに適用できるようにすることを意味します。これらの 3 つのメンバーのみを更新し、他のメンバーはそのままにしておきます。
これは、ネットワークを介してデータを同期するのに役立ちます。クライアントとサーバーにオブジェクトがあり、サーバーでメンバーが変更されたときに、そのメンバーとそのメンバーのみの更新された値を含むメッセージをクライアントに送信したいとします。オブジェクト全体のコピーをネットワーク経由で送信したくありません。
boost::serialization
一見すると、すべてまたはまったくサポートしていないように見えます。
編集: 最初にこれを書いてから 3 年後、私はそれを振り返って、自分自身に言います。boost::serialization を使用すると、保存するメンバーと保存しないメンバーを定義できるため、説明したように「部分的なシリアル化」をサポートします。さらに、C++ にはリフレクション シリアライゼーション ライブラリがないため、保存する各メンバーを明示的に指定する必要があります。ただし、ソース ファイルを解析するための何らかの外部ツールが付属している場合や、C++ コードの生成に使用される別の入力ファイル形式がある場合を除きます (例: Protocol Buffers の機能)。これを書いたとき、私は概念的に混乱していたに違いないと思います。