0
XMLシリアル化でGUIDとしてより人間らしいclass_idを使用できますか?BOOST_CLASS_EXPORT_GUID
???あなたは、これが逆シリアル化しませんCLASS_ID = "0" を削除するとboost :: archive :: xml_oarchiveのclass_id
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization>
<boost_serialization signature="serialization::archive" version="5">
<b class_id="0" tracking_level="1" version="0" object_id="_0">
<name>c</name>
</b>
</boost_serialization>
:
SomeClass* b=new SomeClass("c");
{
boost::archive::xml_oarchive oa(cout);
oa.register_type<SomeClass>();
oa << boost::serialization::make_nvp("b",b);
}
出力は次のようになります:
は、クラスをシリアル化することを検討してください。私はclass_id = "SomeClass"または類似のものを好むでしょう。
ポインタを使ってwarperを書いて、クラス名とデリファレンスされたポインタ(2つの追加のnvp)を保存し、ヒントboost :: serialization :: object_serializable(remove class_id)を使ってシリアライズするのは良い考えです。しかし、binnary_oarchiveに変更するときは、整数だけでなくクラス名を直列化する必要があります。 – Arpegius
"あなた自身のアーカイブクラスを実装する必要があります。"ありがとう、それは私が知りたいことです。私は現在、YAML ++を選択しています。 – Arpegius