Outre tous les avantages connus de l'utilisation de auto_ptrs, qu'est-ce que auto_ptr "pire des pratiques"?auto_ptr Pièges et pièges
Création de contraints STL de auto_ptrs. Les auto_ptrs ne remplissent pas les conditions 'CopyConstructable'. Voir aussi "STL efficace" de Scott Meyer, point 8.
Création auto_ptrs de tableaux Pour la destruction, les utilisations destructor de auto_ptr 'delete' (et jamais «supprimer []) pour détruire l'objet propriété, de sorte que cela donne de code comportement indéfini: auto_ptr api (new int [42]); Ne prend pas en charge copy-ctor et op = dans une classe utilisant les membres auto_ptr. On pourrait penser naïvement qu'en utilisant les membres auto_ptr, il n'est pas nécessaire d'implémenter le constructeur de copie/l'opérateur d'assignation pour une classe. Cependant, même un seul membre auto_ptr "empoisonne" une classe (c'est-à-dire qu'il viole les conditions "CopyConstructable" et "Assignable"). Les objets de ces classes seraient partiellement endommagés pendant l'opération de copie/affectation.
Y a-t-il encore plus de pièges auto_ptr?
En outre, 'auto_ptr' sera obsolète dans la prochaine norme C++ (qui, selon Sutter, sera officiellement votée après mars 2011 (http://herbsutter.com/2010/08/28/trip-report-august-2010 -iso-c-standards-meeting /), devenant ainsi C++ 0B pour nous die-hards). Si vous avez 'unique_ptr', utilisez-le à la place. –