【发布时间】:2010-06-30 11:32:31
【问题描述】:
我正在使用 boost 来序列化和反序列化一些类
像这样:
boost::archive::xml_oarchive xmlArchive(oStringStream);
xmlArchive.register_type(static_cast<BaseMessage *>(NULL));
xmlArchive.register_type(static_cast<IncomingTradeMessage *>(NULL));
xmlArchive.register_type(static_cast<InternalRequestInfo *>(NULL));
xmlArchive.register_type(static_cast<InternalTradeTransInfo *>(NULL));
const BaseMessage* myMessage =message;
xmlArchive << make_nvp("Message", myMessage);
现在我的班级根据使用的顺序得到一个class_id,我不想要那个,我想控制Class_id的
所以我可以做类似的事情
BOOST_SET_CLASS_ID(1234, BaseMessage);
在我的项目 BaseMessage 中的任何地方都会有 1234 的 class_id。
我怎么能做这样的事
【问题讨论】:
-
为什么需要这样做?
-
我使用它在 C# 和 C++(通过 tcp)之间进行通信,我希望该属性不依赖于存档看到类的顺序
标签: c++ serialization boost