我有这样的情况:

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>)

我想通过Boost序列化对“IData”实例进行序列化和反序列化,但似乎不起作用。有没有人做过此事,或者您有任何建议。

最佳答案

尝试改用BOOST_CLASS_EXPORT_GUID:

BOOST_CLASS_EXPORT_GUID(ConcreteData<float>, "ConcreteData<float>")
BOOST_CLASS_EXPORT_GUID(ConcreteData<int>, "ConcreteData<int>")

关于c++ - 加剧序列化问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1000343/

10-09 05:36