Poza wszystkimi znanymi korzyściami używania auto_ptrs, jakie są "najgorsze praktyki" w auto_ptr?auto_ptr Pułapki i pułapki
Tworzenie contempers STL auto_ptrs. Parametry auto_ptrs nie spełniają wymagań "CopyConstructable". Patrz „skuteczna STL” Również Scott Meyer, punkt 8.
Tworzenie auto_ptrs tablic Upon zniszczenie, „Usuń” (a nie „delete []”), aby zniszczyć własność przedmiotu, więc ten kod plony auto_ptr za destruktor używa niezdefiniowane zachowanie: auto_ptr api (new int [42]);
Nie dbanie o copy-ctor i op = w klasie za pomocą członków auto_ptr. Można naiwnie myśleć, że przy użyciu członków auto_ptr nie trzeba implementować operatora kopiowania/przypisania dla klasy. Jednak nawet jeden członek auto_ptr "zatruwa" klasę (tj. Narusza wymagania "CopyConstructable" i "Assignable"). Obiekty takich klas zostałyby częściowo uszkodzone podczas operacji kopiowania/przydziału.
Czy jest jeszcze więcej pułapek auto_ptr?
Również, 'auto_ptr' będzie przestarzałe w następnym standardzie C++ (który Sutter ma nadzieję zostanie oficjalnie zatwierdzony po marcu 2011 r. (Http://herbsutter.com/2010/08/28/trip-report-august-2010 -iso-c-standards-meeting /), stając się C++ 0B dla nas, die-hards). Jeśli masz 'unique_ptr', użyj go zamiast tego. –