草庐IT

Serialization

全部标签

用于通信的 C++ 对象到 XML

我正在寻找一种简单的方法来将C++中的对象转换为XML字符串表示形式,这样我就可以与服务器进行通信。例如,假设我有一个对象:classA{stringdata1;stringdata2;stringdataN;listbList;}classB{stringmoreData;}我想要以下XML表示形式:(假设我创建了一个实例A,它有两个实例B)contentcontentcontentcontentcontent 最佳答案 您所描述的称为XML数据绑定(bind)。有许多产品可以从XSD或DTD生成C++代码,请查看http://w

c++ - C++中流接口(interface)的问题

所以我在C++中有一个虚拟流接口(interface)classKxStream{public:virtualKxStream&operator它为所有内置类型提供了大量基本的然后我有几个实现流接口(interface)的类。像这样:classKxCbuf:publicKxStream{public:KxStream&operator所以在KxCbuf中有一个streaming接口(interface)的实现。到目前为止,一切都很好。然后我有一些重载流接口(interface)的类:classKxSymbol{operatoru32()const;friendKxStream&oper

c++ - C++11标准有没有全新的序列化和反射库?

最近,boost序列化对C++11标准库中的内容进行改进并非不可能。同时,我的项目需要序列化和反射库。我四处寻找,没有找到任何东西。因此我想知道是否有现成的(嗯......它必须是全新的才能与C++11兼容,而不是老化的MFC)或关于制作我自己的任何基本、实用和明确的指导.据我所知,基本原理是使用STANDARD中的那些助手来推断类型,已经在没有std命名空间的boost序列化中被采用。这对您来说可能就像从鸡蛋中挑出鹅卵石一样微不足道,但我就是无法让自己对boost感到满意。 最佳答案 要真正回答这个问题,尽管有点晚了:现在有cer

c++ - boost serialization 1.5.5 在遇到 Nan 和 Inf 时崩溃

boost序列化似乎无法从基于文本的存档中恢复Nan和inf的值。在这种情况下,除非您处理archive_exception,否则程序将终止,有什么解决方案吗? 最佳答案 图书馆作者hasthistosay:ThesimpletruthisIneverconsiderthis.WhenitcameupthelasttimeIdidn'treallythinkaboutitverymuchasIwasinvolvedinotherthingsandIhopedintereste[d]partiesmightcometoaconsens

c++ - Protocol Buffers (protobuf) v3.0.0-alpha-2 中的可选字段和约束

我目前正在使用Google的v3.0.0-alpha-2ProtocolBuffers.据我所知,v3删除了required关键字,extensions字段的关键字和默认值以简化原型(prototype)语言。我不理解的是proto3中optional关键字的含义。示例:syntax="proto3";packagefw.example;messageExampleMessage{optionalstringoptional_string=1;stringnormal_string=2;}问题:optional_string和normal_string有什么区别除了名称和标签?我已经阅

c++ - 选择正确的子类以编程方式实例化

好的,上下文是一些序列化/反序列化代码,它将字节流解析为更易于使用的“对象”表示(反之亦然)。这是一个带有基本消息类的简化示例,然后根据“类型”header,存在更多数据/函数,我们必须选择正确的子类来实例化:classBaseMessage{public:enumType{MyMessageA=0x5a,MyMessageB=0xa5,};BaseMessage(Typetype):mType(type){}virtual~BaseMessage(){}Typetype()const{returnmType;}protected:TypemType;virtualvoidparse(

c++ - STL类的序列化

是否可以序列化包括std::string在内的任何STL类?我有一组std::strings,我正在尝试将它们写入文件并将它们加载回std::set。 最佳答案 是的,这是可能的。用boost.serialization,例如。对于STL,阅读correspondingtutorialsection 关于c++-STL类的序列化,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/44

c++ - 序列化原始 boost::variant 是否安全?

boost::variant声称它是一个值类型。这是否意味着简单地写出boost::variant的原始表示并稍后加载它是安全的,只要它只包含POD类型?假设它将由相同编译器和相同版本的boost在相同架构上编译的代码重新加载。此外,(可能)等价地,可以在共享内存中使用boost::variant吗? 最佳答案 尝试只包含boost/serialization/variant.hpp;它会为您完成工作。 关于c++-序列化原始boost::variant是否安全?,我们在StackOve

java - Objective-C : Serializing/Archiving issues

我是一名Android开发者,最近开始使用IOS。在我所有的Android项目中,我都有一个执行以下操作的IO类:publicstaticObjectload(Stringfname,Contextcont){FileInputStreamfis=cont.openFileInput(fname);ObjectInputStreamois=newObjectInputStream(fis);ObjectloadedObject=ois.readObject();ois.close();fis.close();Father.print("Loadedfromfile"+fname+"su

iphone - 将 CG 结构序列化为适当对象的最佳实践

为了存储在集合类中,将基于CoreGraphics结构的值(例如CGRect、CGPoint等)存储到适当的对象中的最佳做法是什么?您可以使用NSValue:NSMutableArray*values=[NSMutableArrayarray];CGRectrect=CGRectMake(0,0,100,100);NSValue*value=[NSValuevalueWithCGRect:rect];[valuesaddObject:value];CGRectrectValue=[values[0]CGRectValue];或NSString:NSMutableArray*values