提升序列化问题

时间:2011-07-12 15:13:58

标签: c++ boost boost-serialization

我正在尝试在我的类中使用两个数组来使用boost序列化库。我可以保存数据,但由于某种原因,我无法加载它。我认为这是与ia>> *这个;但我不知道如何解决它。任何人都可以指出我走的正确轨道?

class foo
{

private:
int tileType[512];
int tileSubType[512];

friend std::ostream & operator<<(std::ostream &os, const foo &gp);
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
    ar & tileType;
    ar & tileSubType;
}

public:
foo();

void loadType(string data)
{
    std::stringstream is(data);

    boost::archive::text_iarchive ia(is);
    ia >> *this;
}

string saveType()
{
    stringstream ss(stringstream::in | stringstream::out);
    boost::archive::text_oarchive oa(ss); 
    oa << this;

    return ss.str().c_str();
}

};

2 个答案:

答案 0 :(得分:1)

你试过吗

 oa << *this;

你正在保存指针但加载到参考中,我猜这不是你想要的,对吗?

答案 1 :(得分:0)

我在尝试将>><<运算符与档案一起使用时遇到了一些问题。尝试在两种情况下使用&运算符,看看是否能为您修复它。