std::auto_ptr<T>:: auto_ptr
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
explicit
auto_ptr
(
X
*
p
=
0
)
throw
(
)
;
|
(1) |
(veraltet in C++11)
(entfernt in C++17) |
|
auto_ptr
(
auto_ptr
&
r
)
throw
(
)
;
|
(2) |
(veraltet in C++11)
(entfernt in C++17) |
|
template
<
class
Y
>
auto_ptr ( auto_ptr < Y > & r ) throw ( ) ; |
(3) |
(veraltet in C++11)
(entfernt in C++17) |
|
auto_ptr
(
auto_ptr_ref
<
X
>
m
)
throw
(
)
;
|
(4) |
(veraltet in C++11)
(entfernt in C++17) |
Konstruiert den
auto_ptr
aus einem Zeiger, der auf das zu verwaltende Objekt verweist.
auto_ptr
mit dem Zeiger
p
.
auto_ptr
mit dem Zeiger, der in
r
gehalten wird.
r.
release
(
)
wird aufgerufen, um den Besitz des Objekts zu übernehmen.
auto_ptr
mit dem Zeiger, der in der
auto_ptr
-Instanz gehalten wird, auf die durch
m
verwiesen wird.
p.
release
(
)
wird für den
auto_ptr p
aufgerufen, den
m
hält, um den Besitz des Objekts zu übernehmen.
auto_ptr_ref
ist ein implementierungsdefinierter Typ, der eine Referenz auf
auto_ptr
hält.
std::auto_ptr
ist implizit
konvertierbar zu
und
zuweisbar von
diesem Typ. Der Implementierung ist es erlaubt, dem Template einen anderen Namen zu geben oder äquivalente Funktionalität auf andere Weise zu implementieren.
Parameter
| p | - | ein Zeiger auf ein zu verwaltendes Objekt |
| r | - |
ein weiterer
auto_ptr
, von dem der Besitz des Objekts übernommen wird
|
| m | - |
ein implementierungsdefinierter Typ, der eine Referenz auf
auto_ptr
enthält
|
Hinweise
Der Konstruktor und der Kopierzuweisungsoperator von
auto_ptr_ref
sind vorhanden, um das Kopierkonstruieren und Zuweisen von
std::auto_ptr
aus namenlosen Temporären zu ermöglichen. Da ihr Kopierkonstruktor und Kopierzuweisungsoperator das Argument als nicht-konstante Referenz nehmen, können sie Rvalue-Argumente nicht direkt binden. Allerdings kann eine
benutzerdefinierte Konvertierung
ausgeführt werden (welche das ursprüngliche
auto_ptr
freigibt), gefolgt von einem Aufruf des Konstruktors oder Kopierzuweisungsoperators, die
auto_ptr_ref
als Wert nehmen. Dies ist eine frühe Implementierung der
Move-Semantik
.