ハッシュ マップをファイルにシリアライズし、後でデシリアライズしたいと考えています。
#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
。コンパイルするにはどのように変更すればよいですか?