は、シリアル化する構造を考えてみましょう:boost :: serialization :: traitsの具体的な例は?
struct MyStruct {
int a;
std::string b;
template<class Archive>
void serialize(Archive &ar, const unsigned int)
{
ar & a & b;
}
};
私は明示的にtrack_never
とobject_serializable
の両方であることを、ブースト::シリアル化::特性を使用して、それをタグ付けします。私はtraits docsを見つめていましたが、それを適用する方法について私の心を捉えることはできないようであり、どこにでもサンプルを見つけることはできません。だから...
a)この特定のクラスに特性を適用するコードとは何ですか?
b)それぞれが適切であることを確認するBOOST_STATIC_ASSERT()
とは何ですか?
c)この型を直接処理できる標準的なアーカイブクラスにメンバー関数やテンプレートがないため、このクラスのprimitive_typeを作成できないと思います。正しい?
プラットフォーム間またはバージョン間でのアーカイブの互換性については気にしませんが、MyStruct
の高速読み取り(書き込み)と侵入は問題ありませんが、可能であれば両方向で行ってください。
このように、上記の2つのマクロは、入力した順番に正確に配置する必要があります。私はそれらを逆にしていたので、それが私のために働いていなかったのです。最後のセミコロンは必須ではありませんが、害はありません。 (これはすべてMinGW-32/gcc-4.4です。) – JimB