gpt4 book ai didi

C++ Boost ptr_map 序列化错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:01:31 25 4
gpt4 key购买 nike

我有一些要构建的代码。该代码使用 boost::ptr_map 类来序列化某些对象。我有带有 boost1.38 的 Visual Studio 2008,我从编译器中收到以下错误。我想知道是否还有其他人见过这样的事情。

C2039: 'serialize' : 不是 'boost::ptr_map' 的成员

似乎缺少一些引用,我想知道它是什么,我没有看到任何 boost/serialization/ptr_map。我用谷歌搜索了很多,但没有任何东西被证明是可行的。我创建了一个示例代码,它在下面生成了相同的错误

#include <fstream>
#include <iostream>


#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/config.hpp>

#include <boost/shared_ptr.hpp>
#include <boost/ptr_container/ptr_map.hpp>

#include <boost/serialization/string.hpp>
#include <boost/serialization/version.hpp>
#include <boost/serialization/split_member.hpp>

using namespace std;

class User
{
boost::ptr_map<std::string, string> ptrmap;

public:

friend class boost::serialization::access;

template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & ptrmap;
}

bool save(const std::string& filename)
{
ofstream ofs(filename.c_str());

if(ofs.good() == false)
{
return false;
}

try
{
boost::archive::text_oarchive oa(ofs);
oa << (*this);
}
catch(...)
{
throw;
}

return true;
}
};


int main()
{
User user;
user.save("C:\\test.db");
return EXIT_SUCCESS;
}

感谢任何帮助。

最佳答案

看起来有一个 boost/ptr_container/serialize_ptr_map.hpp,它可能对 #include 很重要。

关于C++ Boost ptr_map 序列化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/978311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com