我实际上是在尝试使用 boost::serialize 序列化 boost::function,因为我想在 boost::interprocess::message_queue 中共享它。我只看到了一种方法,那就是使用非侵入式的 boost::serialize 版本。
namespace boost {
namespace serialization {
template<class Archive>
void serialize(Archive & ar, boost::function<void()> & fct, const unsigned int version)
{
ar & fct.args;
ar & fct.arity;
ar & fct.vtable;
ar & fct.functor;
}
}
}
我还需要序列化 vtable 和 functor,我没有尝试过,我不确定它是否有效。
那么有什么方法可以以适当的方式序列化 boost::function 吗?
谢谢你。