据我了解,占位符没有序列化(boost::serialization
实际上)支持。boost::any
有人知道是否有办法序列化自定义boost::any
实体?
这里的问题很明显:boost::any
使用基于模板的占位符来存储对象并typeid
检查是否boost::any_cast
合适。
因此,有一个自定义的抽象超类placeholder
和自定义的基于模板的派生类,它们的创建方式如下:
template <T> custom_placeholder : public placeholder {
virtual std::type_info type() const { return typeid(T); }
virtual ...
};
显然,这在考虑序列化这些东西时也会带来一些麻烦。也许有人知道一些技巧来进行这种序列化(当然还有适当的反序列化)?
谢谢