不看好boost等通用化序列化库的发展

时间:2023-02-10 18:02:41
序列化过程碰到比较大的麻烦就是3个:
1,文件格式解析;2,c++对象的动态创建;3,对象中引用或者指针等变量的存储和载入;
针对第一个问题,没啥好说的,c/c++的i/o库就可以解决,还有很多不错的xml解析器。
针对第二个问题,动态创建,现在c++标准没有规定类似java的反射机制,(如果以后标准
规定后,编译器可以做这些问题就好了)
针对第三个问题,指针等的序列化,是一个很关键的问题。

boost针对2和3问题做了处理,但是导致使用复杂,而且碰到指针,如果对于的对象不存在就为其创建,这样本身就不好。因为这样混淆了引用和数据的区别。一个程序所需要序列化的数据,如果对象之间包含很多相互的引用,那么所有的序列化数据应该包含2部分:
1:对象数据,2:指针我们只要把对象数据和指针用普通的方法序列化就可以了,然后把指针地址从内存域和序列化文件域建立一个映射就可以了。

所以我觉得,第一个问题是通用序列化库的发展重点(比如,创建出更好的文件解析器,譬如xml等格式解析器,比如现在xml解析器接口简洁友好,功能强大的还寥寥无几,远未成熟)。
第二个和第三个问题让应用程序自己解决,这是程序的职责,而且程序知道那些数据和引用的逻辑关系。(而且实现起来很简单,而且很透明,比较程序知道自己内部的数据和之间的关系),让企图达到通用场合适用的第三方序列化库做会吃力不讨好.

7 个解决方案

#1


进来听课<placeholder>

#2


是啊,不看好不用就是了

#3


就是看看别人的看法,如果有不对的对方指出来,对大家都有进步。

#4


到现在为止都没用boost开发

#5


序列化 的确不好用,没研究过

#6


序列化?????????

#7


很好用啊,有什么不对

#1


进来听课<placeholder>

#2


是啊,不看好不用就是了

#3


就是看看别人的看法,如果有不对的对方指出来,对大家都有进步。

#4


到现在为止都没用boost开发

#5


序列化 的确不好用,没研究过

#6


序列化?????????

#7


很好用啊,有什么不对