2011-07-12 7 views
0

ブーストシリアル化ライブラリを使用するために、クラス内に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(); 
} 

}; 
+0

コンパイルエラー?ランタイムエラー?あなたの質問は何ですか? –

答えて

0

あなたは

oa << *this; 

を試してみましたか?

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

0

>><<演算子をアーカイブに使用しようとするといくつか問題が発生しました。どちらの場合も&演算子を使用して試してみてください。

関連する問題