Wir alle wissen, dass RAW-Pointer in irgendeine Form von Smart-Pointer verpackt werden müssen, um eine Exception-sichere Speicherverwaltung zu erhalten. Aber wenn es um Behälter mit Zeigern geht, wird das Thema dorniger.Zeiger und Container
Die std Behälter bestehen auf das enthaltene Objekt kopierbar ist, so dies die Verwendung von std :: auto_ptr Regeln aus, obwohl Sie noch boost verwenden können :: shared_ptr usw.
Aber es gibt auch einige Boost-Container explizit entworfen halten sicher Zeiger:
Siehe Pointer Container Library
Die Frage ist: Unter welchen Bedingungen sollte ich lieber die ptr_containers über einen Behälter von smart_pointers benutzen?
boost::ptr_vector<X>
or
std::vector<boost::shared_ptr<X> >
Es ist möglich und manchmal die beste Option, aber wenn eine Klasse enthält 2 oder mehr RAW-Zeigern, so dass es Ausnahme sicher ist, ist nicht trivial. Aber ich sollte dich abmelden, weil du die Frage nicht beantwortet hast. –