设为首页 加入收藏

TOP

简单c++序列化(一)
2013-01-13 10:32:28 来源: 作者: 【 】 浏览:719
Tags:简单 序列化

    看了几个序列化框架,都有这个那个瑕疵

    1. boost  太大,不容易学

    2. eternity 不支持非侵入式,必须在类里加序列化方法。并且不支持 map<int, vector<my_class》 之类嵌套

    3. s11n 太复杂,不支持二进制存储,导致文件比较大

    所以尝试自己搞了下,目前做到以下功能

    1. 非侵入式

    2. 支持pod原生类型,如 int,  double, 指针

    3. 支持stl容器

    4. 二进制存储

    例子:

    [cpp]

    #include <windows.h>

    #include <iostream>

    #include <fstream>

    #include <map>

    #include <vector>

    #include <algorithm>

    using namespace std;

    #include "serialization.h"

    #include "stl/vector.h"

    #include "stl/map.h"

    #include "stl/string.h"

    struct packet {

    int x;

    string name;

    };

    typedef map<int, vector<packet》 vmap;

    vmap m;

    template <class Stream>

    void serialize(Stream& stream, packet& p) {

    serialize(stream, p.x);

    serialize(stream, p.name);

    }

    template <class Stream>

    void de_serialize(Stream& stream, packet& p) {

    de_serialize(stream, p.x);

    de_serialize(stream, p.name);

    }

   

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C/C++回文字符串  下一篇Nandflash 驱动移植

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: