0
XML序列化是否可以使用更加人性化的class_id作为GUID,使用BOOST_CLASS_EXPORT_GUID
描述?class_id in boost :: archive :: xml_oarchive
考虑序列化类:
SomeClass* b=new SomeClass("c");
{
boost::archive::xml_oarchive oa(cout);
oa.register_type<SomeClass>();
oa << boost::serialization::make_nvp("b",b);
}
输出将是这样的:
<?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>
当您删除类标识码= “0”,这不会反序列化。我更喜欢class_id =“SomeClass”或类似的东西。
在指针上写warper,保存类名和解除引用的指针(2个附加的nvp),并使用提示boost :: serialization :: object_serializable(remove class_id)进行序列化是个好主意。但是当你改变为binnary_oarchive时,你需要序列化类名,而不仅仅是整数。 – Arpegius 2009-07-29 23:54:21