0
BOOST_CLASS_EXPORT_GUID
을 사용하여 설명 된 GUID로보다 인간 친화적 인 class_id를 XML 직렬화에서 사용할 수 있습니까 ???boost :: archive :: xml_oarchive의 class_id
는 직렬화 클래스를 고려
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>
당신이 CLASS_ID을 제거
이 = "0"이 직렬화되지 않습니다. class_id = "SomeClass"또는 비슷한 것을 선호합니다.
포인터 위에 워퍼를 작성하고 클래스 이름과 참조 해제 포인터 (2 개의 추가 nvp)를 저장하고 힌트 boost :: serialization :: object_serializable (class_id 제거)을 사용하여 직렬화하는 것이 좋습니다. 그러나 binnary_oarchive로 변경할 때 정수가 아닌 클래스 이름을 직렬화해야합니다. – Arpegius
"감사 보관 파일을 직접 구현해야합니다. 알고 싶습니다. 저는 현재 YAML ++을 선택했습니다. – Arpegius