Pour autant que je sache, il n'y a pas de support de sérialisation (boost::serialization
, en fait) pour boost::any
placeholder.C++ - boost :: toute sérialisation
Est-ce que quelqu'un sait s'il existe un moyen de sérialiser une entité boost::any
personnalisée?
Le problème ici est évident: boost::any
utilise des espaces réservés basés sur un modèle pour stocker des objets et typeid
pour vérifier si boost::any_cast
est approprié.
Donc, il y a un cours, qui sont créés de la manière suivante dérivés basés sur des modèles superclasse placeholder
et la coutume coutume abstraite:
template <T> custom_placeholder : public placeholder {
virtual std::type_info type() const { return typeid(T); }
virtual ...
};
De toute évidence, cela apporte des ennuis quand même de penser à sérialisation ce genre de choses. Peut-être que quelqu'un connaît un truc pour faire ce genre de sérialisation (et bien sûr, la désérialisation appropriée)?
Merci
Un type spécialisé pour un ensemble connu de types serait appelé une variante, par ex. ['boost :: variant'] (http://www.boost.org/doc/libs/1_44_0/doc/html/variant.html) (qui, évidemment, ne donne que la fondation). –
@Georg: Oui, merci pour l'indice. J'ai édité la réponse pour refléter cela. –