auto_ptr を使用する既知のすべての利点に加えて、auto_ptr の「ワースト プラクティス」とは何ですか?
auto_ptrs の STL コントレーナーの作成。auto_ptrs は「CopyConstructable」要件を満たしていません。Scott Meyer の「Effective STL」の項目 8 も参照してください。
配列の auto_ptr の作成 破棄時に、auto_ptr のデストラクタは「delete」を使用して (決して「delete[]」は使用しない)、所有しているオブジェクトを破棄するため、このコードは未定義の動作を引き起こします。
auto_ptr メンバーを使用するクラスで copy-ctor と op= を処理しない。auto_ptr メンバーを使用することで、クラスのコピー コンストラクター/代入演算子を実装する必要がないと素朴に考えるかもしれません。ただし、単一の auto_ptr メンバーでさえ、クラスを「毒殺」します (つまり、「CopyConstructable」および「Assignable」の要件に違反します)。このようなクラスのオブジェクトは、コピー/割り当て操作中に部分的に破損します。
他にも auto_ptr の落とし穴はありますか?