Насколько я понимаю, нет сериализации (boost::serialization
, фактически) поддержки boost::any
placeholder.
Кто-нибудь знает, есть ли способ сериализации пользовательского объекта 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 ...
};
Очевидно, это приносит некоторые проблемы, даже когда мы думаем о сериализации этого материала. Может быть, кто-то знает какую-то трюк, чтобы сделать такую сериализацию (и, конечно, правильную десериализацию)?
Спасибо