boost::interprocess::message_queue で共有したいので、boost::serialize を使用して実際に boost::function をシリアル化しようとしています。それを行う方法は 1 つしかありません。非侵入型の 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 を適切な方法でシリアル化する方法はありますか?
ありがとうございました。