Bonjour à tous.
Intitulé explicite, n'est-ce pas ? ^^
Donc voila peut-on utiliser les shared_ptr de boost sans ce privé ou faut-il seulement les utiliser quand c'est nécessaire ?
Merci d'avance![]()
Bonjour à tous.
Intitulé explicite, n'est-ce pas ? ^^
Donc voila peut-on utiliser les shared_ptr de boost sans ce privé ou faut-il seulement les utiliser quand c'est nécessaire ?
Merci d'avance![]()
Je dirais que comme toute technique, il ne faut l'utiliser que quand c'est nécessaire, c-à-d quand elle apporte quelque chose par rapport aux autres alternatives.
Typiquement les shared_ptr s'utilisent, comme leur nom l'indique, pour gérer la durée de vie d'objets partagés. Mais il arrive qu'ils puissent servir dans d'autres contextes, par manque d'alternatives (auto_ptr a une sémantique bien spéciale), comme par exemple pour stocker des objets polymorphes dans des conteneurs.
Si tu veux utiliser ce genre de pointeurs intelligents "sans te priver", je te conseillerais plutôt de le faire de manière intrusive: mettre un compteur de références dans tes objets et utiliser des intrusive_ptr<>...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Sachant que par définitions les shared_ptr sont des objets, leur utilisation rend ton programme plus lourd. Mais sur un sytème qui se respecte, ce type de contrainte, de nos jours, ne pose plus de problèmes.
Il est préférable d'utiliser des shared_ptr que de se retrouver avec des espaces mémoires non désalloués par exemple.
Personnellement je n'ai jamais trouvé l'intérêt de shared_ptr.
Si je veux partager la propriété d'une donnée, j'utilise plutôt une flyweight factory (qui résout un certain nombre des problèmes de shared_ptr par ailleurs)
Peux-tu donner des détails sur ce qu'est une flyweight factory ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Peut-être voulait-il dire "en terme de performances"...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager