-1

クラス内に 2 つの配列を取得して、ブースト シリアライゼーション ライブラリを使用しようとしています。保存はできるのですが、なぜか読み込めません。ia >> *this; と一緒だと思います。しかし、私はそれを修正する方法がわかりません。誰でも私を正しい道に導くことができますか?

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();
}

};
4

2 に答える 2

1

やってみました

 oa << *this;

?

あなたはポインターを保存していますが、参照にロードしています。それはあなたが望むものではないと思いますよね?

于 2011-07-12T15:22:45.197 に答える
0

アーカイブで>>and演算子を使用しようとして、いくつかの問題に遭遇しました。両方のケースで演算子を<<使用してみて、問題が解決するかどうかを確認してください。&

于 2011-07-12T15:27:34.200 に答える