【发布时间】:2014-06-07 05:20:56
【问题描述】:
我如何序列化结构中的 std::allocator 类型并作为参考,请参见下面的代码示例:
//SimpleData.hpp
#include <boost/serialization/access.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/optional.hpp>
#include <boost/serialization/map.hpp>
#include <boost/serialization/shared_ptr.hpp>
#include <boost/serialization/list.hpp>
namespace A
{
struct FullData
{
FullData();
FullData(const parameter_strings & parms);
virtual ~FullData();
std::string country;
int pincode;
private :
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar & country;
ar & pincode;
}
typedef std::list<FullData> FullDataInfo; // what should be done to serialize this data
};
}
// SimpleData.cpp
#include "SimpleData.hpp"
#include <boost/serialization/export.hpp>
namespace A
{
FullData::FullData()
{
}
FullData::~FullData()
{
}
FullData::FullData(const parameter_strings & parms): detail(parms)
{
// impelmentation
}
}
BOOST_CLASS_EXPORT_IMPLEMENT(A::FullData)
BOOST_CLASS_IMPLEMENTATION(A::FullData , boost::serialization::object_serializable)
BOOST_CLASS_TRACKING(A::FullData , boost::serialization::track_never)
我不知道如何序列化 typedef FullData::inst_list FullDataInfo;
谢谢,
【问题讨论】:
-
上述代码中似乎缺少
inst_list的定义。请通过sscce.org 测试您的代码,以便我们能够理解您 - 编译代码(或几乎编译代码,如果您的问题是编译器错误)比远程阅读您的想法更容易理解! -
更新了代码..并更正了
-
好的。现在你尝试了什么,它是如何失败的?
-
@user3382670 这有been the sixth time I have cleaned up the mess that your questions contained,大约一个月后。然而,每次你发布一个新问题时,它都会包含同样令人讨厌的错误。如果您无法使用答案中获得的信息,也许您应该考虑放弃该项目。这是我最后一次为您定义
parameter_strings。 -
我们不是唯一可以编写自包含示例程序的人。您可以从收到的任何答案中复制一份。不这样做表明极度懒惰或无能。学习没关系,但如果你不能以富有成效的方式提出问题,那么你的目标就是高。 (我希望您实际上不要将未受保护的密码存储在存档中。)
标签: c++ serialization c++11 boost boost-serialization