打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
最便捷、最强大、速度最快的C++序列化框架2
     作者: 发表日期: 2009年01月02日 

http://nark.cc/p/?p=56

目前该框架(DataIO)仅支持二进制。想起序列化支持只需要两个宏 DATA_IO_LOAD_SAVE / DATA_IO_LOAD_SAVE_V,对象成员基本上用“&”连接起来,这样,可以写一个简单的语法分析器,在序列化宏中将成员序列化表达转化成字符串,进行语法分析,这样,就可以在不用改变客户代码的情况下,进行文本方式(如XML)的序列化了,比 boost 的要简单许多。

例如,目前的宏这样定义:

C++
1
2
3
4
5
#define DATA_IO_LOAD_SAVE(Class, Members) \
    template void load(DataIO& dio) { dio Members; }      \
    template void save(DataIO& dio) const { dio Members; }    \
    DATA_IO_REG_LOAD_SAVE(Class)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

可以改成这样:

C++
1
2
3
4
5
6
7
8
9
10
#define DATA_IO_LOAD_SAVE(Class, Members) \
#define DATA_IO_LOAD_SAVE(Class, Members)   \
    template void load(DataIO& dio) { \
        static Grammar gram = dio.parse(#Members); \
        Loader ld(gram, dio); ld Members; } \
    template void save(DataIO& dio) const { \
        static Grammar gram = dio.parse(#Members); \
        Saver sv(gram, dio); sv Members; } \
    DATA_IO_REG_LOAD_SAVE(Class)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Cereal library
汇编笔记1
第95天:StringIO & BytesIO
ANDROID轻量级JSON序列化和反序列化
JSON的序列化和反序列化
序列化反序列化 (binary/xml)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服