2

ハッシュ マップをファイルにシリアライズし、後でデシリアライズしたいと考えています。

#include <boost/serialization/hash_map.hpp>
#include <boost/filesystem/fstream.hpp>
#include <hash_map>

class A: virtual public B {
 public:
     friend class boost::serialization::access;
     stdext::hash_map<std::string, myClass> myClassHashTable; 
     template <class Archive>
     void serialize(Archive &ar, const unsigned int version)
     {
        ar & myClassHashTable;
     }
};

void A::serializedToDisk()
{
      boost::filesystem::path finalPath(SOME_CONSTANT);
      // code to create  boost::filesystem::ifstream ofs object
      boost::archive::text_oarchive oa(ofs);
      oa << myClassHashTable;
}
void A::restoreFromDisk()
{
     boost::filesystem::path finalPath(SOME_CONSTANT);
    // code to create  boost::filesystem::ifstream ifs object
      boost::archive::text_iarchive ia(ifs);
      ia >> myClassHashTable;
}

しかし、私はエラーが発生しています -

エラー C2039: 'serialize' : 'stdext::hash_map<_Kty,_Ty>' のメンバーではありません

このエラーをオンラインで検索しましたが、あまり役に立ちませんでした。また、ブーストのインストールに機能serialization/hash_map.hppがあることを確認しserialize()ました。のシリアル化でも同じコードが機能しましたstd::deque。コンパイルするにはどのように変更すればよいですか?

4

1 に答える 1

4
于 2011-02-23T07:44:34.520 に答える