auto_ptr et shared_ptr - C++ - Programmation
Marsh Posté le 22-12-2011 à 02:53:03
auto_ptr est deprecated en C++ 2011 (je suppose que c'est à cette nouvelle norme que tu t'attaques).
unique_ptr pour le cas où tu veux une seule référence à ton objet pointé.
Après, c'est toujours pareil, trop de généricité risque de tuer la performance. Avoir comme indice que tu n'auras pas d'autre référence permet de simplifier le code que tu vas générer. Il ne faut pas rendre les choses plus génériques que nécessaire.
Marsh Posté le 22-12-2011 à 16:14:16
theshockwave a écrit : auto_ptr est deprecated en C++ 2011 (je suppose que c'est à cette nouvelle norme que tu t'attaques). |
Hello,
Merci pour ta réponse ! En fait, je n'ai pas encore regardé la nouvelle norme C++ .. Sans la considérer, on peut voire cela comme une généralisation ? un peu comme ce que sont les sémaphores aux mutex ...?
pour moi un auto_ptr à un compteur de référence à 1, et un shared_ptr à n ... mais je ne sais pas si c'est bien ça la différence entre les deux.
Marsh Posté le 22-12-2011 à 20:31:17
globalement, c'est à peu près l'idée, mais bon, philosophiquement, ca occupe deux cas différents :
* d'une part, le cas où tu es propriétaire de la donnée pointée (unique_ptr)
* d'autre part, le cas où la propriété de l'objet pointée est partagée entre plusieurs entitéss.
Ca ne sont que des moyens d'exprimer la durée de vie des objets.
Marsh Posté le 21-12-2011 à 11:32:33
Bonjour,
J'aimerais savoir si shared_ptr peut être vu comme une généralisation de auto_ptr ? Par exemple, auto_ptr n'a qu'une référence et shared_ptr 'n' references ...?
merci par avance pour votre réponse