2011-07-12 47 views
0

我想在我的课堂里得到两个数组来使用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(); 
} 

}; 
+0

编译失败?运行时失败?你的问题是什么? –

回答

0

你试过

oa << *this; 

您正在保存指针但加载到引用中,我想这不是你想要的,对吧?

0

我遇到了一些问题,试图在档案中使用>><<操作符。尝试在这两种情况下使用&运算符,然后查看是否可以为您解决问题。