- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
XML 序列化是否有可能使用更人性化的 class_id 作为 GUID,使用 BOOST_CLASS_EXPORT_GUID
描述???
考虑序列化类:
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"或类似的东西。
最佳答案
是的,解决方案是以名称-值对的形式序列化您的类。参见 this item在 boost 文档中。
如果您想要两种不同的行为,则必须实现它们。尝试使用模板特化:
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & degrees;
ar & minutes;
ar & seconds;
}
template<class Archive>
void serialize_with_name(Archive & ar, const unsigned int version)
{
ar & make_nvp("degrees", degrees);
ar & make_nvp("minutes", minutes);
ar & make_nvp("seconds", seconds);
}
template<>
void serialize<>(xml_iarchive & ar, const unsigned int version)
{
serialize_with_name(ar, version);
}
template<>
void serialize<>(xml_oarchive & ar, const unsigned int version)
{
serialize_with_name(ar, version);
}
默认情况下,object_id_type 是无符号整数 (basic_archive.hpp)。如果你想要不同的东西,你需要实现你自己的归档类。
关于c++ - boost::archive::xml_oarchive 中的 class_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1159429/
我在训练时使用 Yolo 来训练自定义对象检测,但出现以下错误 Wrong annotation: class_id = 1. But class_id should be [from 0 to
我有一个 XML 序列化反射类型,我可以像这样得到它的序列化: template std::function get_serialization_for_type(std::string name)
XML 序列化是否有可能使用更人性化的 class_id 作为 GUID,使用 BOOST_CLASS_EXPORT_GUID 描述??? 考虑序列化类: SomeClass* b=new SomeC
我正在学习 Python 并解决机器学习问题。 class_ids=np.arange(self.x.shape[0]) np.random.shuffle(class_ids) self.x=sel
我是 Rails 的新手,正在 rails3 (beta4) 上构建一个小型测试应用程序。 我正在使用 Authlogic 来管理用户 session (以标准方式设置为 per this tutor
我是一名优秀的程序员,十分优秀!