std::auto_ptr
| Definiert in Header <memory> |
||
| template< class T > class auto_ptr; |
(1) | (in C++11 veraltet) (removed in C++17) |
| template<> class auto_ptr<void>; |
(2) | (in C++11 veraltet) (removed in C++17) |
auto_ptr ist ein Smart Pointer, der ein Objekt verwaltet, das mittels eines new-Ausdrucks erworben wurde, und dieses Objekt löscht, wenn auto_ptr selbst zerstört wird. Es kann verwendet werden, um Ausnahmesicherheit für dynamisch zugeordnete Objekte bereitzustellen, um Besitz von dynamisch zugeordneten Objekten in Funktionen zu übertragen und um dynamisch zugeordnete Objekte aus Funktionen zurückzugeben.
Das Kopieren eines auto_ptr kopiert den Zeiger und überträgt den Besitz auf das Ziel: Sowohl die Kopierkonstruktion als auch die Kopierzuweisung von auto_ptr ändern ihr rechtes Argument, und die "Kopie" ist nicht gleich dem Original. Aufgrund dieser ungewöhnlichen Kopiersemantik darf auto_ptr nicht in Standardcontainern platziert werden. Für diesen und andere Verwendungszwecke wird std::unique_ptr bevorzugt.(seit C++11)
element_type, aber keine Memberfunktionen.Eine zusätzliche Klassenvorlage auto_ptr_ref wird in der gesamten Dokumentation referenziert. Es handelt sich um einen implementierungsdefinierten Typ, der eine Referenz auf auto_ptr hält. Die Implementierung darf die Vorlage unter einem anderen Namen bereitstellen oder die Funktionen, die sie zurückgeben oder als Parameter akzeptieren, auf andere Weise implementieren.
Inhalt |
[bearbeiten] Member types
| Mitgliedertyp | Definition |
| element_type | T |
[bearbeiten] Member functions
erstellt einen neuen auto_ptr(public member function) | |
zerstört einen auto_ptr und das verwaltete Objekt(public member function) | |
überträgt den Besitz von einem anderen auto_ptr(public member function) | |
| konvertiert den verwalteten Zeiger in einen Zeiger eines anderen Typs (public member function) | |
Observer | |
| Gibt einen Zeiger auf das verwaltete Objekt zurück (public member function) | |
| greift auf das verwaltete Objekt zu (public member function) | |
Modifizierer | |
| Ersetzt das verwaltete Objekt (public member function) | |
| gibt den Besitz des verwalteten Objekts frei (public member function) | |