我正在尝试在我的类中使用两个数组来使用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 :(得分:1)
你试过吗
oa << *this;
你正在保存指针但加载到参考中,我猜这不是你想要的,对吗?
答案 1 :(得分:0)
我在尝试将>>
和<<
运算符与档案一起使用时遇到了一些问题。尝试在两种情况下使用&
运算符,看看是否能为您修复它。