Boost :: La sérialisation a un support intégré pour boost::shared_ptr<>
. Y at-il un moyen d'utiliser ce support pour std::tr1::shared_ptr<>
aussi?
Est-il possible de passer de std::tr1::shared_ptr<>
à boost::shared_ptr<>
?Boost Serialization - Sérialiser std :: tr1 :: shared_ptr?
2
A
Répondre
3
Un moulage ne sera pas possible car les implémentations diffèrent. La création d'une instance du type shared_ptr avec la valeur renvoyée par get() sur l'autre type shared_ptr ne fonctionnera pas correctement car les comptages de référence iront à 0 à différents points de votre code, ce qui entraînera la suppression de l'objet avant le dernier. utilisation de celui-ci. Je ne suis pas un expert de boost :: serialization mais comme les interfaces de std :: tr1 :: shared_ptr <> et boost :: shared_ptr <> sont presque identiques il est très probable que vous pouvez simplement cloner le code de sérialisation/désérialisation de boost :: shared_ptr <> et il suffit de remplacer l'espace de nom du shared_ptr.
Questions connexes
- 1. shared_ptr dans std :: tr1
- 2. Différences entre tr1 :: shared_ptr et boost :: shared_ptr?
- 3. Un std :: tr1 :: shared_ptr pour Objective C++ sur iPhone?
- 4. support OS-X pour std :: tr1
- 5. mal à affecter un TR1 :: shared_ptr
- 6. .NET Interop et TR1 shared_ptr
- 7. boost fonction d'usine shared_ptr
- 8. problème avec itérateurs pour std :: liste de boost :: shared_ptr
- 9. Maintenir un std :: set <boost :: shared_ptr>
- 10. Comment fonctionne boost :: serialization Archive :: register_type?
- 11. Boost shared_ptr use_count fonction
- 12. static_cast avec boost :: shared_ptr?
- 13. boost :: shared_ptr dans Objective-C++
- 14. Lecture d'un boost shared_ptr atomiquement
- 15. std :: tr1 :: mem_fn type de retour
- 16. Je ne comprends pas std :: tr1 :: unordered_map
- 17. Boost sérialisation - sérialiser des données d'une manière personnalisée
- 18. Est-il possible d'utiliser boost :: serialization avec la classe managée?
- 19. A quoi sert shared_ptr de boost (shared_ptr <Y> const & r, T * p)?
- 20. Création d'événements de multidiffusion avec std :: tr1 :: function (ou boost :: function)
- 21. Comparaison des objets std :: tr1 :: function <>
- 22. std :: tr1 :: function :: target <TFuncPtr> et co-/contravariance
- 23. boost :: shared_ptr <const T> pour boost :: shared_ptr <T>
- 24. const shared_ptr à shared_ptr
- 25. Copie en profondeur de std :: stack <boost> shared_ptr <T>>
- 26. QList and shared_ptr
- 27. Mocking using boost :: shared_ptr et AMOP
- 28. Attribution personnalisée (pool) avec boost shared_ptr
- 29. JTemplates serialization
- 30. Libération de la ressource sur boost :: shared_ptr finalization
Si vous pouvez utiliser boost de toute façon, pourquoi n'utilisez-vous pas simplement boost? Shared_ptr' en premier lieu? – ereOn
Cause l'interface est indépendante du boost. L'utilisation de boost :: serialization pour sérialiser les classes est juste un détail d'implémentation. Si, plus tard, un autre développeur décide d'utiliser une autre implémentation pour la sérialisation, le projet dépendra toujours du boost. – MOnsDaR
Pourquoi n'utiliser pas simplement 'typedef boost :: shared_ptr MySharedPtr', donc votre code ne dépendrait pas de boost, mais de typedef-dependent. Vous pouvez changer à la fois la bibliothèque de sérialisation et typedefs dans le futur. –