【发布时间】:2014-02-02 07:46:19
【问题描述】:
编译Boost序列化的简单测试时:
class Test
{
protected:
int Num;
friend class boost::serialization::access;
template <class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & BOOST_SERIALIZATION_NVP(Num);
}
public:
Test(): Num(0) {}
~Test() {}
};
使用 xml_oarchive 进行输出,我遇到以下 GCC 错误:
C:\Development\Libraries\boost_1_55_0\boost\mpl\assert.hpp|289|error: no matching function for call to 'assertion_failed(mpl_::failed************ boost::serialization::is_wrapper<Test>::************)'|
当使用其他存档类型时,它编译并运行良好。我所做的所有研究都指向我使用BOOST_SERIALIZATION_NVP 宏来解决错误,但我已经这样做了,我仍然得到这个错误。
有没有人遇到过同样的问题?
【问题讨论】:
-
旁注:BOOST_SERIALIZATION_NVP 是一个围绕 boost::serialization::make_nvp(const char * name, T & t) 的简单宏。您可能不会公开成员名称,而是使用 make_nvp("Number", Num)
标签: c++ boost boost-serialization