我有这样的情况:
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”实例,但它似乎不起作用。有没有人以前做过这个或者你有什么建议。顺便说一句,我正在使用 VS 2005。
最佳答案
尝试使用 BOOST_CLASS_EXPORT_GUID
代替:
BOOST_CLASS_EXPORT_GUID(ConcreteData<float>, "ConcreteData<float>")
BOOST_CLASS_EXPORT_GUID(ConcreteData<int>, "ConcreteData<int>")
关于c++ - Boost序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1000343/