私が理解している限り、プレースホルダーのシリアル化(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 ...
};
明らかに、これは、このようなものをシリアル化することを考えている場合でも、いくつかの問題を引き起こします。たぶん誰かがそのような種類のシリアル化(そしてもちろん、適切な逆シリアル化)を行うためのいくつかのトリックを知っていますか?
ありがとうございました