Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Boost序列化问题_C++_Exception_Templates_Boost Serialization - Fatal编程技术网

C++ Boost序列化问题

C++ Boost序列化问题,c++,exception,templates,boost-serialization,C++,Exception,Templates,Boost Serialization,我有这样的情况: class IData { virtual void get() = 0; virtual void set() = 0; } BOOST_ASSUME_IS_ABSTRACT(IData) BOOST_EXPORT_CLASS(IData) template<typename T> class ConcreteData : public IData { public: protected: template<typename Archive&

我有这样的情况:

class IData 
{
  virtual void get() = 0;
  virtual void set() = 0;
}
BOOST_ASSUME_IS_ABSTRACT(IData)
BOOST_EXPORT_CLASS(IData)

template<typename T>
class ConcreteData : public IData
{
public:

protected:
 template<typename Archive>
 void serialize(Archive& ar, const unsigned version)
 {
   ar & data;
 }
private:
 std::vector<T> mData;
}
BOOST_EXPORT_CLASS(ConcreteData<float>)
BOOST_EXPORT_CLASS(ConcreteData<int>)
BOOST_EXPORT_CLASS(ConcreteData<double>)
类IData
{
虚拟void get()=0;
虚空集()=0;
}
假设是抽象的(IData)
增压出口级(IData)
模板
类别数据:公共IData
{
公众:
受保护的:
模板
无效序列化(存档和ar,常量未签名版本)
{
ar&data;
}
私人:
std::向量mData;
}
增强导出类(具体数据)
增强导出类(具体数据)
增强导出类(具体数据)

我想通过boost序列化来序列化和反序列化“IData”实例,但它似乎不起作用。以前有人这样做过吗,或者你有什么建议。顺便问一下,我在VS 2005中使用了。

尝试使用
BOOST\u CLASS\u EXPORT\u GUID

BOOST_CLASS_EXPORT_GUID(ConcreteData<float>, "ConcreteData<float>")
BOOST_CLASS_EXPORT_GUID(ConcreteData<int>, "ConcreteData<int>")
BOOST\u CLASS\u EXPORT\u GUID(ConcreteData,“ConcreteData”)

BOOST\u CLASS\u EXPORT\u GUID(ConcreteData,“ConcreteData”)
尝试改用
BOOST\u CLASS\u EXPORT\u GUID

BOOST_CLASS_EXPORT_GUID(ConcreteData<float>, "ConcreteData<float>")
BOOST_CLASS_EXPORT_GUID(ConcreteData<int>, "ConcreteData<int>")
BOOST\u CLASS\u EXPORT\u GUID(ConcreteData,“ConcreteData”)

BOOST\u CLASS\u EXPORT\u GUID(ConcreteData,“ConcreteData”)
如果类位于命名空间中,请不要忘记添加命名空间:

BOOST_CLASS_EXPORT_GUID(NameSpace::ConcreteData<float>, "NameSpace::ConcreteData<float>")
BOOST_CLASS_EXPORT_GUID(NameSpace::ConcreteData<int>, "NameSpace::ConcreteData<int>")
BOOST\u类\u导出\u GUID(命名空间::具体数据,“NameSpace::concreatedata”)
BOOST_CLASS_EXPORT_GUID(名称空间::ConcreteData,“名称空间::ConcreteData”)

如果类位于名称空间中,请不要忘记添加名称空间:

BOOST_CLASS_EXPORT_GUID(NameSpace::ConcreteData<float>, "NameSpace::ConcreteData<float>")
BOOST_CLASS_EXPORT_GUID(NameSpace::ConcreteData<int>, "NameSpace::ConcreteData<int>")
BOOST\u CLASS\u EXPORT\u GUID(名称空间::ConcreteData,“名称空间::ConcreteData”)
BOOST_CLASS_EXPORT_GUID(名称空间::ConcreteData,“名称空间::ConcreteData”)

我们能再看一点代码吗?get()/set()是如何在混凝土中实现的,数据存储在哪里?我们可以看更多的代码吗?get()/set()是如何在混凝土中实现的,数据存储在哪里?