【发布时间】:2015-04-18 21:58:12
【问题描述】:
我对 Boost 序列化非常陌生。我正在使用 Boost 来序列化一个 Xml 文档:
typedef struct xmllist
{
std::string Name;
int Param;
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive& ar, const unsigned int version)
{
ar & BOOST_SERIALIZATION_NVP(Name);
ar & BOOST_SERIALIZATION_NVP(Param);
}
} XMLLIST;
void XmlWrite()
{
std::ofstream ofs("xmlfile.xml");
assert(ofs.good());
boost::archive::xml_oarchive oa(ofs);
XMLLIST xmllist;
xmllist.Name = "Name";
xmllist.Param = 1;
oa << BOOST_SERIALIZATION_NVP(xmllist);
}
boost::archive::xml_oarchive oa(ofs) 给我运行时检查失败 #2 - 变量 'oa' 周围的堆栈已损坏。
我正在使用 Microsoft Visual Studio 2010 和 boost_1_56_0。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
typedef struct在 C++ 程序中不需要这个。只需struct即可。
标签: c++ xml serialization boost