Namensräume
Varianten
Aktionen

std::auto_ptr

Von cppreference.com
< cpp‎ | memory
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
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)

2) Eine Spezialisierung für den Typ void wird bereitgestellt; sie deklariert die Typedef 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) [bearbeiten]
zerstört einen auto_ptr und das verwaltete Objekt
(public member function) [bearbeiten]
überträgt den Besitz von einem anderen auto_ptr
(public member function) [bearbeiten]
konvertiert den verwalteten Zeiger in einen Zeiger eines anderen Typs
(public member function) [bearbeiten]
Observer
Gibt einen Zeiger auf das verwaltete Objekt zurück
(public member function) [bearbeiten]
greift auf das verwaltete Objekt zu
(public member function) [bearbeiten]
Modifizierer
Ersetzt das verwaltete Objekt
(public member function) [bearbeiten]
gibt den Besitz des verwalteten Objekts frei
(public member function) [bearbeiten]