Serialization de classes "inconnues" [boost::serialization] - C++ - Programmation
Marsh Posté le 31-01-2010 à 17:17:14
Y a un passage dans la doc de serialization sur ce genre de truc.
Clairement l'idée est d'avoir un fonction export template qui se charge de sérializé sur le type concret en déferrant l'appel à operator&(Archive,T)
Et sinon, pour ton idée, pas besoin d'inclure tout, une forward declaration pour le prototype suffira. Le sincldue sne seront necessaire que dans le .cpp de export
Marsh Posté le 31-01-2010 à 18:24:31
Je ne trouve pas cette info dans la doc, est-ce que tu peux me donner le lien?
Mais visiblement je dois déclarer l'id de ma classe avec BOOST_CLASS_EXPORT_GUID avant de pouvoir sauver celle-ci. Donc j'ai peur que de toute façon remonter la fonction d'export soit la seule solution.
Marsh Posté le 31-01-2010 à 13:34:17
Bonjour,
Je m'adresse avant tout à des personnes qui maîtrisent bien boost::serialization ou le C++.
La plupart des classes que j'utilise dans mon moteur sont déjà sérialisées. Jusqu'à présent je n'ai jamais eu de soucis pour exporter/importer des classes dérivées car dans le .cpp qui s'en chargeait tous leurs headers étaient inclus.
Maintenant c'est différent, j'ai créé une nouvelle librairie qui vient se greffer sur celle en charge de la sérialisation. Et là problème, comment faire reconnaitre mes nouvelles classes? Pour vous donner un exemple:
Les déclarations de classe:
L'export:
Est-ce que je suis obligé de remonter cette fonction "export" dans LibTop en incluant tous les headers? En fait tout le problème c'est que le paramètre "Archive" est template, mais si on le connait à l'avance ya peut-être moyen d'appeler une virtuelle?